elmozaur
14.03.2016, 14:04:15
Witajcie.
Takie szybkie pytanko:
funkcją time() mogę zwrócić timestamp, który mogę zamienić na dokładną gdzinę miesiac dzień itp.
pytanie:
Jak pozyskać zakres timestampu, który będzie odpowiadał dokładnie całemu dniowi (od godz:00:00- 23:59:59);
wymyśliłem sposób czasochłonny polegający na:
sprawdzeniu aktualnej daty, potem ustalam godzinę na 00:00 wszystko wrzucam do strtotime i mam pierwszą wartość
ustalam godzinę na 23:59:59 z datą wrzucam do strto time i mam drugą wartość do zakresu.
czy da się to zrobić jakoś "czytelniej/logiczniej" ?
kapslokk
14.03.2016, 14:07:22
Możesz użyć:
http://php.net/manual/en/class.datetime.php$date = new DateTime();
$date->setTime(0,0,0);
echo($date->getTimestamp()); $date->setTime(23,59,59);
echo($date->getTimestamp());
markuz
14.03.2016, 14:09:00
$date = '2016-03-14';
$from = strtotime($date); // domyślnie godz. 00:00 $to = $from + 86399; // 23:59:59 (60 s * 60 m * 24 h - 1 s)
echo date('Y-m-d H:i:s', $from) . ' ' . date('Y-m-d H:i:s', $to);
Crozin
14.03.2016, 14:12:36
@markuz: Twoje rozwiązanie posypie się w przypadku wystąpienia sekund przestępnych bądź zmiany czasu (DST), chyba, że wymusisz operowanie na UTC - co i tak się powinno robić.
elmozaur
14.03.2016, 14:55:08
dziękuję wszystkim za odpowiedź.