Jak ugryźć funkcję php mktime?
W poniższych przykładach zmienna $time posiada postać.
$time = time();
Początek dnia
np.: 2008-08-18 00:00:00
$startDay = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time), date('Y',$time)));
Koniec dnia
np.: 2008-08-18 00:00:00
$endDay = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time)+1, date('Y',$time)));
Początek tygodnia
np.: 2008-08-18 00:00:00
$startWeek = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time), date('Y',$time)));
Koniec tygodnia
np.: 2008-08-25 00:00:00
$endWeek = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), date('d', $time)+1, date('Y',$time)));
Pierwszy dzień miesiąca
np.: 2008-08-01 00:00:00
$firstDayInMonth = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time), 1, date('Y',$time)));
Ostatni dzień miesiąca
np.: 2008-08-29 00:00:00
$lastDayInMonth = date('Y-m-d H:i:s', mktime(0,0,0,date('m', $time)+1, -1, date('Y',$time)));
Gdzie zastosować?
System statystyk. Wyłowienie z bazy danych rekordów z danego dnia, tygodnia, miesiąca.
SELECT * FROM stats WHERE time BETWEEN '$startDay' AND '$endDay'
Jedno pytanie mnie nurtuje. Czy 00:00:00 tj. północ - jest traktowana jako początek czy koniec dnia? wydaje mi się ze to jest ostatnia godzina danego dnia.
poniedziałek, 18 sierpnia 2008
mktime - w przyładach
Etykiety:
php,
pro memoria
Subskrybuj:
Komentarze do posta (Atom)
2 komentarze:
Wg mnie jest to początek dnia... przeciez masz 00:00:00 zalozmy ze to poniedzialek... wg TWojej teorii 00:00:01 bylby juz wtorkiem.
Takze 00:00:00 jest poczatkiem dnia
Jak najbardziej się z Tobą zgadzam :)
Prześlij komentarz