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



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



спасибо

754   6  

6 ответов:

$timestamp = strtotime('today midnight');

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

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

сегодня в полночь. Простой.

$stamp = mktime(0, 0, 0);
$today_at_midnight = strtotime(date("Ymd"));

должно дать вам то, что вы после.

объяснение

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

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

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

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

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

$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

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

Comments

    Ничего не найдено.