Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ilość konretnych dni tygodnia w przedziale daty
rafalp
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 18
Dołączył: 4.02.2003
Skąd: Częstochowa

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


Jak by to rozwiązać, mam np.

  1. $date_from = '2011-01-01';
  2. $date_to = '2011-10-10';


I chce wiedzieć ile wystąpiło np. poniedziałków w tej przedziale daty..


jakieś pomysły poza tym:

że sprawdzam w pętli ten zakres zwiększając o dzień i sprawdzając czy dana data jest poniedziałkiem ($dzien_tygodnia=date("D",$data)(IMG:style_emoticons/default/wink.gif) i itd, zwiększając wartości ilosc_poniedziałków++;

Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Hmm, to może spróbuj inaczej:
Oblicz różnicę w dniach, sprawdź jaki dzień był w przedziale od, jeżeli to jest poniedziałek to dziel przez 7 liczbę dni, jeżeli nie to dodaj tyle dni, aby był poniedziałek i dopiero dziel - może się sprawdzi.

Napisałem coś takiego dla Ciebie:

  1. <?php
  2.  
  3. $date_from = '2011-07-01';
  4. $date_to = '2011-08-07';
  5.  
  6. $t_zone = new DateTimeZone("Europe/Warsaw");
  7.  
  8. $d = date("D", strtotime($date_from));
  9.  
  10. while ($d != 'Mon') {
  11. $d = date("D", strtotime($date_from)+3600*24);
  12. $date_from = date("Y-m-d", strtotime($date_from)+3600*24);
  13. }
  14.  
  15. echo $d.'<br/>';
  16. echo $date_from.'<br/>';
  17.  
  18. $t_from = new DateTime($date_from, $t_zone);
  19. $t_to = new DateTime($date_to, $t_zone);
  20.  
  21. $diff = $t_from->diff($t_to);
  22. $days = $diff->format("%a");
  23.  
  24. $x = round($days / 7);
  25.  
  26. echo $days.'<br/>';
  27. echo $x;
  28.  
  29.  
  30. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 22:22