Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] listowanie pierwszego i ostatniego dnia miesiąca
wcg
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.07.2006

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


Witam. Mam taki problem:
Mając np. daty od=15-01-2008, do 27-12-2008, potrzebuję listować w tym przedziale pierwsze i ostatnie dni miesiąca
P: 01-01-2008 O: 31-01-2008
P: 01-02-2008 O: 29-02-2008
P: 01-03-2008 O: 31-03-2008
.... itd.
Myślę ze trzeba zastosować jakąś pętle, ale nie wiem jak się za to zabrac
Może ma ktoś pomysł jak można to zrobić? Z góry serdecznie dziękuje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


... echh... się dzisiaj trochę napracuję (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. $od1rok = date('Y', strtotime($pierwszywpis));
  3. $do1rok = date('Y', strtotime($ostatniwpis));
  4.  
  5. $od1miesiac = date('m', strtotime($pierwszywpis));
  6. $do1miesiac = date('m', strtotime($ostatniwpis));
  7.  
  8. for ( $rok=$od1rok; $rok<=$do1rok; $rok++ ){
  9. for ( 
  10. $i=$od1miesiac; 
  11. // warunek kontynuacji petli
  12. ($rok==$do1rok&&$i<=$do1miesiac)||($rok<$do1rok&&$i<=12); 
  13. $i++
  14.  ){
  15. if ( !checkdate( $i, 31, $rok ){
  16. if ( !checkdate( $i, 30, $rok ){
  17. if ( !checkdate( $i, 29, $rok ){
  18. $endDate = "28-$i-$rok";
  19. } else {
  20. $endDate = "29-$i-$rok";
  21. }
  22. } else {
  23. $endDate = "30-$i-$rok";
  24. }
  25. } else {
  26. $endDate = "31-$i-$rok";
  27. }
  28. echo "P: 01-$i-$rok O: $endDate<br />\n";
  29. }
  30. // nadpisujemy od1miesiac bo w nastepnyhc iteracjach bedziemy daty robić od styczn
    ia 
  31. $od1miesiac = 1;
  32. }
  33. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 05:30