将AMPM转换为24小时的日期时间

时间:2017-01-21 01:54:30

标签: php datetime strtotime

我正在尝试将01-31-2017 09:01 AM转换为24小时的日期时间(我的价值观中有AM PM),但它一直给我1969-12-31 16:00:00

这就是我所做的:

$old_date = strtotime("01-31-2017 09:01 AM");
$new_date = date('Y-m-d H:i:s', $old_date);

非常感谢我能得到的任何帮助!

1 个答案:

答案 0 :(得分:2)

如果你知道字符串的格式,最好使用date_create_from_format function

$s = '01-31-2017 09:01 AM';
$date = date_create_from_format('m-d-Y h:i A', $s);
var_dump($date->format('Y-m-d H:i:s'));

当你使用strtotime时,你让php解析字符串,这可能会导致你不想要的结果(例如 - 01-02-2017 - 它是jan 2nd还是feb 1st? )。