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

convert AMPM to datetime 24 hour

我正在尝试将 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);

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

如果您知道字符串的格式,最好使用 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 - 是吗? 1 月 2 日还是 2 月 1 日?)。