Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Rozwiazane][PHP] Numer dnia miesiąca (poniedziałek danego tygodnia)
Hpsi
post
Post #1





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam, piszę ponieważ już totalnie ogłupiałem, piszę kalendarz i kombinuje już dobre pare godzin, by dobrze mi skrypt odczytał numer dnia miesiąca dla naprzykład poniedzaiłek 23 tygodnia roku 2011.
Jakieś porady jak to zrobić?

Ten post edytował Hpsi+ 17.05.2011, 14:11:48


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
usb2.0
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


http://php.net/manual/en/function.date.php

najłatwiej zrobić switcha do dni tygodnia coś w stylu
Kod
switch(date("D")){
  case "Mon": echo "Poniedziałek" break;
}


który dzień miesiąca to date("d")

Ten post edytował usb2.0 17.05.2011, 08:39:01
Go to the top of the page
+Quote Post
Hpsi
post
Post #3





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Funkcja może się przydać do robienia np w CRM widoku kalendarza na dni robocze



Może komuś się przyda ta funkcja.
podajemy jako argumenty dzien, miesiac, rok

funkcja zwraca nam dni robocze (od poniedzialku do piatku)
funkcja nie uwzglednia świąt etc. po prostu zwraca dni od pn-pt .

Może jest jakiś gotowy sposób na zrobienie tego - lecz ja nie znalazłem, dlatego podaję tutaj moją inwencje twórczą smile.gif
  1.  
  2. public function days($day, $month , $year)
  3. {
  4. if(date('N', mktime(0,0,0,$month,$day,$year) <> 1))
  5. {
  6. $dayOfWeek = date('N', mktime(0,0,0,$month,$day,$year));
  7. if($day-$dayOfWeek < 1)
  8. {
  9. if($month == 1)
  10. {
  11. $lastMonth = date('t', mktime(0,0,0,12,1,$year-1));
  12. $year -= 1;
  13.  
  14. }
  15. else
  16. $lastMonth = date('t', mktime(0,0,0,$month-1,1,$year));
  17. $day = $lastMonth-(date('d', mktime(0,0,0,$month,$day,$year))-$day);
  18. if($month > 1)
  19. $month -= 1;
  20. else
  21. $month = 12;
  22. }
  23. $day = $day-date('N', mktime(0,0,0,$month,$day,$year))+1;
  24. }
  25. for($x=1;$x<6;$x++)
  26. {
  27. if($day > date('t', strtotime($day.'-'.$month.'-'.$year)))
  28. {
  29. $day=1;
  30. if($month == 12)
  31. {
  32. $month = 1;
  33. $year++;
  34. }
  35. else
  36. $month++;
  37. }
  38. $ret[]= array('day' => $day, 'month' => $month, 'year' => $year);
  39. $day++;
  40. }
  41. return $ret;
  42. }
  43.  


kolejna funckja to linów +/- tydzien
jako parmetry funkcji ustawiamy wynik z funkcji days (pierwszy wpis do tablic) dzien, miesiac, rok ostanim parmetrem jest past jesli chcemy by zwrocil link do przodu (o 1 tydzien) ustawiamy go na 1;

  1. public function makeDateLink($day, $month, $year, $past = 0)
  2. {
  3.  
  4. if($past == 0)
  5. {
  6. if($day-7 > 0)
  7. return $this->engine->router->clipLink(0, $day-7, $month, $year);
  8. else
  9. {
  10. if($month == 1)
  11. {
  12. $lastMonth = date('t',mktime(0,0,0,12,1,$year-1));
  13. $year--;
  14. }
  15. else
  16. $lastMonth = date('t',mktime(0,0,0,$month-1,1,$year));
  17. $odejmnij = abs($day-7);
  18. $day = $lastMonth;
  19. if($month > 1)
  20. $month -= 1;
  21. else
  22. $month = 12;
  23. return $this->engine->router->clipLink(0, $day-$odejmnij, $month, $year);
  24. }
  25. }
  26. else
  27. {
  28. $daysOfMonth = date('t', strtotime($day.'-'.$month.'-'.$year));
  29. if($day+7>$daysOfMonth)
  30. {
  31. if($month == 12)
  32. {
  33. $nextMonth = date('t',mktime(0,0,0,1,1,$year+1));
  34. $year += 1;
  35. }
  36. else
  37. $nextMonth = date('t', strtotime($day.'-'.$month.'-'.$year));
  38.  
  39. $day = abs($nextMonth-($day+7));
  40. if($month == 12)
  41. $month =1;
  42. else
  43. $month++;
  44. }
  45. else
  46. $day += 7;
  47. return $this->engine->router->clipLink(0, $day, $month, $year);
  48. }


jeśli ktoś ma uwagi, proszę powiedzieć smile.gif

temat można zamknąć gdyż działa mi już wszystko, rozwiązanie problemu pokazane wyżej wink.gif

Ten post edytował Hpsi+ 17.05.2011, 13:17:01


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:40