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:

  1. function dniDoDaty ($rok, $data_wydarzenia) { // podawaj date w formacie 02-14 dla 14 lutego
  2. $data_wydarzenia_do = $rok.'-'.$data_wydarzenia; // składanie aktualnej daty
  3. $data_aktualna = Date("Y-m-d"); // dzisiejsza data
  4. $liczba_sekund_dla_wydarzenia = StrToTime($data_wydarzenia_do); // przekształcenie w format czasu UNIX
  5. $liczba_sekund_dla_aktualnej_daty = StrToTime($data_aktualna); // przekształcenie w format czasu UNIX
  6. $liczba_sekund_miedzy_datami = $liczba_sekund_dla_wydarzenia - $liczba_sekund_dla_aktualnej_daty; // obliczanie różnicy w sekundach między datami
  7. if($liczba_sekund_miedzy_datami
  8. ++$rok; // zwiêkszamy rok o +1
  9. return ZwrocLiczbeDniDoWydarzenia($rok, $data_wydarzenia); // wywołanie funkcji ponowne z następnym rokiem
  10. endif;
  11. $liczba_sekund_w_dniu = 60 * 60 * 24;
  12. $liczba_dni_miedzy_datami = Floor ($liczba_sekund_miedzy_datami/$liczba_sekund_w_dniu);
  13. return $liczba_dni_miedzy_datami;
  14. }

Jak tego używać?

  1. // aby wyświetlić ilość dni do np. walentynek wprowadź
  2. // w pierwszy parametr aktualny rok - najlepiej date("Y")
  3. // w drugi datę w formacie 02-14
  4. echo dniDoDaty(date("Y"), 02-14);
  5. // dzisiaj mamy 2012-01-06 więc skrypt zwróci nam  39 dni

Smacznego ! :)

VN:F [1.9.13_1145]
Oceń ten artykuł:
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Wyświetlanie ilości dni do daty w PHP, 10.0 out of 10 based on 1 rating