我将以下字符串分配给变量:
$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
任何想法或指示都会有所帮助,
答案 0 :(得分:2)
PM被DateTime
解释为“向结果添加+12小时”,这会使您的日期失去平衡。
简单解决方案:丢弃PM,或者使用12小时时钟版本(即下午1:00)
答案 1 :(得分:1)
尝试摆脱下午。 24小时制的重点是你不需要上午/下午。
$date = "16 June, 2012, 13:00";
$dateTime = DateTime::createFromFormat("d M, Y, H:i", $date);