Wyświetlanie ilości dni do daty w PHP
Na potrzeby pewnej sytuacji w ostatnich chwilach musiałem wymyślić sposób na wyrzucenie do przeglądarki ilość do do wskazanej daty, np. do walentynek. Zacząłem pisać własną funkcję – ale w pewnym momencie przypomniałem sobie, że lepiej sprawdzić czy ktoś w świecie to koło już wymyślił.
Znalazłem fajny skrypt pod adresem Wyświetlanie liczby dni do określonej daty | Skrypty PHP, mySQL trochę go zmodyfikowałem i wyszło mi coś takiego:
- function dniDoDaty ($rok, $data_wydarzenia) { // podawaj date w formacie 02-14 dla 14 lutego
- $data_wydarzenia_do = $rok.'-'.$data_wydarzenia; // składanie aktualnej daty
- $liczba_sekund_dla_wydarzenia = StrToTime($data_wydarzenia_do); // przekształcenie w format czasu UNIX
- $liczba_sekund_dla_aktualnej_daty = StrToTime($data_aktualna); // przekształcenie w format czasu UNIX
- $liczba_sekund_miedzy_datami = $liczba_sekund_dla_wydarzenia - $liczba_sekund_dla_aktualnej_daty; // obliczanie różnicy w sekundach między datami
- if($liczba_sekund_miedzy_datami
- ++$rok; // zwiêkszamy rok o +1
- return ZwrocLiczbeDniDoWydarzenia($rok, $data_wydarzenia); // wywołanie funkcji ponowne z następnym rokiem
- endif;
- $liczba_sekund_w_dniu = 60 * 60 * 24;
- return $liczba_dni_miedzy_datami;
- }
Jak tego używać?
- // aby wyświetlić ilość dni do np. walentynek wprowadź
- // w pierwszy parametr aktualny rok - najlepiej date("Y")
- // w drugi datę w formacie 02-14
- // dzisiaj mamy 2012-01-06 więc skrypt zwróci nam 39 dni
Smacznego !



A po co wyważać otwarte drzwi?
http://pl.php.net/manual/en/class.dateinterval.php