0

我将以下字符串分配给变量:

$date = "16 June, 2012, 13:00pm";

我正在通过 createFromFormat 运行它以尝试将其转换为 DateTime 对象:

$dateTime = DateTime::createFromFormat("d M, Y, H:ia", $date);

这是我回来的对象:

DateTime Object
(
    [date] => 2012-06-17 01:00:00
    [timezone_type] => 3
    [timezone] => Europe/Dublin
)

老实说,我不确定我做错了什么,createFromFormat 中使用的格式看起来与输入字符串的格式匹配,但输出错误。在此示例中,日期是 17 日而不是 16 日,时间显示为 01:00:00 而不是 13:00:00

任何想法或指示都会有帮助,

4

2 回答 2

2

PM 被解释DateTime为“在结果中增加 +12 小时”,这会使您的日期失去平衡。

简单的解决方案:删除 PM,或使用 12 小时制版本(即下午 1:00)

于 2012-06-16T20:22:54.953 回答
1

尝试摆脱下午。24 小时制的重点是您不需要上午/下午。

$date = "16 June, 2012, 13:00";
$dateTime = DateTime::createFromFormat("d M, Y, H:i", $date);
于 2012-06-16T20:20:54.643 回答