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

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

Спасибо

Ответ 1

$timestamp = strtotime('today midnight');

Вы можете посмотреть, что может предложить PHP: http://php.net/datetime

Ответ 2

Я думаю, что вы должны использовать новый объект 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 DateTime Object

Ответ 3

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

$stamp = mktime(0, 0, 0);

Ответ 4

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

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

$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

Ответ 5

$today_at_midnight = strtotime(date("Ymd"));

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

объяснение

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

Литература: Дата Функция: http://php.net/manual/en/function.date.php

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

Ответ 6

$timestamp = strtotime('today midnight');

такой же как

$timestamp = strtotime('today');

и это немного меньше работает на вашем сервере.

Ответ 7

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

Ответ 8

Более объектным способом:

$today = new \DateTimeImmutable('today');

пример:

 echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00

а также:

echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35