Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dodanie dni
Forum PHP.pl > Forum > Przedszkole
Gość_Tomek_*
czesc.

Probuje sobie zrobic takic cosik w php aby wyswietlal mi date np. za 24 miesiace.
Problem jest w tym ze na chlopski rozum od dzisiaj 2006-07-12 za 2 lata powinna byc data 2008-07-12 a mi tak nie wychodzi i jest 2008-07-25.

Kod wyglada nastepujaco:

  1. <? 
  2. $wew="24"; // ustawiona ilosc miesiecy.
  3.  
  4. $mies=date(m);
  5. $rok=date(Y);
  6. //echo $mies."<br>";
  7. $przestepny=$rok/"4"."<br>";
  8. //echo $przestepny;
  9.  
  10. $przestepny=substr($przestepny,4,1)."<br/>";
  11. //echo $przestepny; // jeżeli nie ma kropki to jest przestepny
  12.  
  13. //2004 - przestepny i rok +4 tez
  14. if($mies=="01") { $miesiac_dni="31"; }
  15. if($mies=="02") { if($przestepny!=".") { $miesiac_dni="29"; } else { $miesiac_dni="28";} }
  16. if($mies=="03") { $miesiac_dni="31"; }
  17. if($mies=="04") { $miesiac_dni="30"; }
  18. if($mies=="05") { $miesiac_dni="31"; }
  19. if($mies=="06") { $miesiac_dni="30"; }
  20. if($mies=="07") { $miesiac_dni="31"; }
  21. if($mies=="08") { $miesiac_dni="31"; }
  22. if($mies=="09") { $miesiac_dni="30"; }
  23. if($mies=="10") { $miesiac_dni="31"; }
  24. if($mies=="11") { $miesiac_dni="30"; }
  25. if($mies=="12") { $miesiac_dni="31"; }
  26.  
  27. $ilee=$wew*24*$miesiac_dni; // przeliczanie 
  28.  
  29. $termin=date(Y.'-'. m.'-'.d,mktime(date("d")+$ilee));
  30.  
  31. echo $termin;
  32. ?>


Jeszce jedna zastanawiajaca rzecz jes taka jak ustanie dla miesiaca 07 ilosc dni 30 to wychodzi dobra data hehe.

Prosze o rade, gdzie popelniam blad.


pozdrowienia Tomek.
nospor
  1. <?php
  2. echo 'Za dwa lata :'.date('Y-m-d',strtotime('+2 year'));
  3. ?>

Na przyszlosc zajrzyj najpierw do manuala
Gość_Tomek_*
w manualu trudno cos znalezc wyszukujac po wyrazeniach sad.gif a wsystkich komend php to nie znam i sie nie domyslam :/
z gory gory bardzo dziekuje smile.gif i przepraszam za klopot tongue.gif
nospor
tak, ale w swoim kodzie uzywasz date(). zagladasz wiec do manuala do date(). od razu widac link do strtotime(). zagladasz tam i masz wszystko smile.gif
Ja_Szczur
no i teoria kuleje:

Cytat
$przestepny=$rok/"4"."<br>";


1) jak dzielisz, to dziel przez liczbę, a nie przez tekst: $przestepny = $rok / 4;
2) sprawdź, które lata są przestępne!

lata podzielne przez 100 nie są przestępne, z wyjątkiem lat podzielnych przez 400
(przynajmniej tak jest w kalendarzu gregoriańskim)

czyli

  1. <?php
  2. $przestepny = ( $rok % 4 == 0 ) && ( ( $rok % 100 != 0 ) || ( $rok % 400 == 0 ) ) ? true : false ;
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.