Конвертировать дату с AM PM в 24-часовой формат даты

Как конвертировать 10/25/2014 14:00 PM в 2014-10-25 14:00:00 в php?

date('Y-m-d H:i:s', strtotime("10/25/2014 14:00 PM"));

возвращается

1970-01-01 03:00:00

1

Решение

Я не знаю, каково происхождение этой даты (как это произошло), но вы можете использовать DateTime классы для этого:

$raw_date = '10/25/2014 14:00 PM';
// to disregard that PM escape it in the format
$new_date = DateTime::createFromFormat('m/d/Y H:i \P\M', $raw_date);
echo $new_date->format('Y-m-d H:i:s'); // 2014-10-25 14:00:00
1

Другие решения

$date = "10/25/2014 14:00 PM"; //Here is the date 24 hours format with am/pm
$date = substr($date, 0, -2); //Removed the am/pm from dateecho date('Y-m-d H:i:s', strtotime($date)); //then convert it to mysql date format

Замечания:
Если вы используете это для столбца даты, значит замените его типом данных на int и сохраните метку времени Unix, которая будет более удобной, если год ограничен с 1970 по 2038 год.
По причине не использовать более 2038 читай здесь

1

25.10.2014, 14:00. Ваш введенный формат даты неверен, вы используете 12-часовой формат, поэтому время будет 25.10.2014, 14:00.

1
По вопросам рекламы [email protected]