Как я могу получить временную метку в php на сегодня в полночь. Скажите это в понедельник 5 вечера, и мне нужна отметка времени для понедельника (сегодня) в полночь (12 часов утра), которая уже произошла.
Спасибо
Как я могу получить временную метку в php на сегодня в полночь. Скажите это в понедельник 5 вечера, и мне нужна отметка времени для понедельника (сегодня) в полночь (12 часов утра), которая уже произошла.
Спасибо
$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');
, чтобы получить формат, в котором вы хотите, чтобы ваш объект выводился как.
Сегодня в полночь. Легко.
$stamp = mktime(0, 0, 0);
Вы рассчитываете рассчитать время последнего небесного события, когда солнце прошло прямо под вашими ногами, скорректировано для локальных соглашений о маркировке в полдень, а также может быть настроено так, чтобы у людей было достаточно дневного света после возвращения домой с работы, а также по другим политическим соображениям.
Опасно? На самом деле это обычная проблема, но полный ответ зависит от местоположения:
$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
$today_at_midnight = strtotime(date("Ymd"));
должен дать вам то, что вам нужно.
объяснение
То, что я сделал, это использовать функцию даты PHP, чтобы получить сегодняшнюю дату без каких-либо ссылок на время, а затем передать ее функции "от строки к времени", которая преобразует дату и время в метку времени. Если он не получает времени, он принимает первую секунду этого дня.
Литература: Дата Функция: http://php.net/manual/en/function.date.php
Строка времени: http://us2.php.net/manual/en/function.strtotime.php
$timestamp = strtotime('today midnight');
такой же как
$timestamp = strtotime('today');
и это немного меньше работает на вашем сервере.
$midnight = strtotime('midnight');
является действительным
Вы также можете попробовать strtotime('12am')
или strtotime('[input any time you wish to here. eg noon, 6pm, 3pm, 8pm, etc]')
. Я пропустил добавление сегодня до полуночи, потому что сегодня по умолчанию.
Более объектным способом:
$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