Как преобразовать 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
3 ответа
Я не знаю, каково происхождение этой даты (как это произошло), но вы можете использовать для этого классы 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
$raw_date = '10/25/2014 10:00 AM';
или $raw_date = '10/25/2014 10:00 am';
или $raw_date = '10/25/2014 14:00 pm';
$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 date
echo date('Y-m-d H:i:s', strtotime($date)); //then convert it to mysql date format
Примечание: Если вы используете это для столбца даты, это означает, что замените его тип данных на int и сохраните временную метку unix, которая будет более удобной, если год ограничен 1970-2038 годом. Чтобы не использовать более 2038, прочтите здесь
25.10.2014 14:00 ваш формат даты ввода неверен, вы используете 12-часовой формат, поэтому время будет 25.10.2014 14:00
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
10/25/2014 14:00 PM
действителен, поскольку в форматеam/pm
применимо только12 hours
AM/PM
AM