Получаете отметку времени на сегодня в полночь?


Как бы я мог получить метку времени в php на сегодня в полночь. Скажем, сегодня понедельник, 5 вечера, и мне нужна отметка времени на понедельник (сегодня) в полночь (12 часов утра), которая уже произошла.

Спасибо

Author: user1701398, 2012-10-30

6 answers

$timestamp = strtotime('today midnight');

Возможно, вы захотите взглянуть, что может предложить PHP: http://php.net/datetime

 181
Author: hakre, 2012-10-29 21:20:04

Я думаю, что вам следует использовать новый объект PHP DateTime, так как у него нет проблем с датами, выходящими за рамки 32-битных ограничений, которые есть у strtotime(). Вот пример того, как вы могли бы получить сегодняшнюю дату в полночь.

$today = new DateTime();
$today->setTime(0,0);

Или, если вы используете PHP 5.4 или более поздней версии, вы можете сделать это следующим образом:

$today = (new DateTime())->setTime(0,0);

Затем вы можете использовать echo $today->format('Y-m-d');, чтобы получить формат, в котором вы хотите вывести свой объект.

PHP Объект даты и времени

 57
Author: Joe Meyer, 2014-08-01 01:43:17

Сегодня в полночь. Легко.

$stamp = mktime(0, 0, 0);
 16
Author: bearcat, 2013-09-27 13:54:10
$today_at_midnight = strtotime(date("Ymd"));

Должен дать вам то, что вам нужно.

объяснение

Что я сделал, так это использовал функцию даты PHP, чтобы получить сегодняшнюю дату без каких-либо ссылок на время, а затем передать ее в функцию "строка во время", которая преобразует дату и время в метку времени эпохи. Если у него нет времени, он предполагает первую секунду этого дня.

Ссылки: Функция даты: http://php.net/manual/en/function.date.php

Строка Для Времени: http://us2.php.net/manual/en/function.strtotime.php

 4
Author: SamHuckaby, 2012-10-29 21:24:30

Вы хотите рассчитать время самого последнего небесного события, когда солнце прошло прямо у вас под ногами, с поправкой на местные обычаи отмечать полдень, а также, возможно, скорректировать так, чтобы у людей оставалось достаточно дневного света после возвращения домой с работы, и по другим политическим соображениям.

Устрашающе, верно? На самом деле это распространенная проблема, но полный ответ зависит от местоположения:

$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();

Потенциальными определениями "здесь" являются указан в https://secure.php.net/manual/en/timezones.php

 4
Author: William Entriken, 2017-11-03 14:11:47

$midnight = strtotime('midnight'); допустимо
Вы также можете попробовать strtotime('12am') или strtotime('[input any time you wish to here. e.g noon, 6pm, 3pm, 8pm, etc]'). Я пропустил добавление сегодня до полуночи, потому что по умолчанию сегодня.

 0
Author: Victor Mbamara, 2018-05-30 14:04:13