createFromFormat没有返回正确的小时

时间:2014-05-15 11:34:44

标签: php date

我的数据库有这样的日期条目: 8月29日20:00 PM

echo $datetest;
//prints 29th August 20:00 PM

$myDateTime = DateTime::createFromFormat('jS F H:i A', $datetest)
$startHoursString = $myDateTime->format('H');

echo $startHoursString;
// prints 08 instead of 20

我原以为$ startHoursString是20而不是8。

任何人都可以对此或解决方法有所了解吗?

1 个答案:

答案 0 :(得分:2)

这是脏黑客,但它应该有效,如果你确定日期是这种AM/PM格式,你必须从字符串中移除最后3个字符(AM或PM加空格):< / p>

$myDateTime = DateTime::createFromFormat('jS F H:i', substr($datetest, 0, -3));

小提琴here

此外,请记住,使用AM/PM有效期最长为12小时,20:00 AM / PM为 INVALID 格式。