Как написать полный рабочий день в strtotime?
Я пытаюсь получить метку времени для: "час: минута утра/вечера месяц/день/год", но, похоже, она работает неправильно. В каком порядке это должно быть?
Пример моего текущего заказа: 11:59 утра, 19.04.2012
5 answers
Вот как вы преобразуете запрошенную отформатированную строку даты/времени в метку времени:
$date_string = '11:59 am, 04/19/2012';
$dateTime = DateTime::createFromFormat("H:i a, m/d/Y", $date_string);
$timestamp = $dateTime->getTimestamp();
echo $timestamp;
Вывод:
1334833140
Поставьте дату перед временем:
echo strtotime('04/19/2012 11:59 am');
Я полагаю, что это было бы похоже на это
echo strtotime(date("Y-m-d H:i:s"));
Таким образом, порядок
Год-месяц-день часы: минуты: секунды
Я также предполагаю, что strtotime достаточно умен, чтобы знать разные форматы дат, поэтому вы должны быть в порядке с вашим форматом даты, просто укажите его как первую часть и время после нее.
Попробуйте удалить следующий символ после am: ,
Например, используйте это:
strtotime("11:59 am 04/19/2012")
Если я правильно понял ваш вопрос, строка, которую вам нужно проанализировать в date()
, чтобы получить нужный формат из метки времени, выглядит следующим образом:
date("H:i a, m/d/Y", $timestamp);
Дополнительные символы форматирования можно найти в документации, здесь.
strtotime()
не преобразует указанный вами формат даты в метку времени, однако более мощный и универсальный DateTime
класс мог бы это сделать.