Как написать полный рабочий день в strtotime?


Я пытаюсь получить метку времени для: "час: минута утра/вечера месяц/день/год", но, похоже, она работает неправильно. В каком порядке это должно быть?

Пример моего текущего заказа: 11:59 утра, 19.04.2012

Author: PadraigD, 2012-04-18

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
 3
Author: PadraigD, 2012-04-18 15:55:15

Поставьте дату перед временем:

echo strtotime('04/19/2012 11:59 am');
 2
Author: John Conde, 2012-04-18 15:32:13

Я полагаю, что это было бы похоже на это

echo strtotime(date("Y-m-d H:i:s"));

Таким образом, порядок

Год-месяц-день часы: минуты: секунды

Я также предполагаю, что strtotime достаточно умен, чтобы знать разные форматы дат, поэтому вы должны быть в порядке с вашим форматом даты, просто укажите его как первую часть и время после нее.

 2
Author: Dale, 2012-04-18 15:32:21

Попробуйте удалить следующий символ после am: ,

Например, используйте это:

strtotime("11:59 am 04/19/2012")
 1
Author: Daniel Dudas, 2012-04-19 19:28:24

Если я правильно понял ваш вопрос, строка, которую вам нужно проанализировать в date(), чтобы получить нужный формат из метки времени, выглядит следующим образом:

date("H:i a, m/d/Y", $timestamp);

Дополнительные символы форматирования можно найти в документации, здесь.


strtotime() не преобразует указанный вами формат даты в метку времени, однако более мощный и универсальный DateTime класс мог бы это сделать.

 0
Author: Bojangles, 2012-04-18 15:31:59