DateTime createFromFormat问题

时间:2014-12-24 06:04:50

标签: php datetime

我正在尝试将日期时间格式转换工作并遇到问题。我指定的格式似乎不适用于我给出的输入。我以前从未使用过这个功能,所以任何提示都会受到赞赏。

我正在尝试进行以下转换:

$date = DateTime::createFromFormat('l, F j Y g.ia','Thursday, April 2 2014 7.20pm');
$date = $date->format('d/m/Y');    

我得到一个“致命错误:在第76行的非对象上调用成员函数格式()”,我猜这意味着createFromFormat函数失败。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

仅在PHP 5> = 5.3.0中支持

DateTime::createFromFormatdate_create_from_format功能。

因此,要使其发挥作用,您需要:

  • 将PHP版本升级到5.3.0或更高版本

OR

  • 尝试使用

    $date = date('d/m/Y',strtotime('Thursday, April 2 2014 7.20pm'));
    echo $date;
    

注意:php版本5.3.0 - 5.3.8显示格式化为02/04/2014的日期,而php版本5.3.9 - 5.6.3显示格式化日期为03/04/2014。这是因为在PHP版本5.3.9 - 5.6.3中,DateTime似乎比php版本5.3.0 - 5.3.8更严格。我可以注意到的是,如果不与其工作日同步,我们尝试转换的那天。意思是,4月2日不是星期四,它实际上是星期三,因此它强制在星期四附近的日期接近你指定的日期。就像我们将尝试转换日期' 2014年4月4日星期四晚上7点20分',我们最终会显示4月10日,因为星期四是在这个日期。

答案 1 :(得分:0)

对于迟到的回复感到抱歉。

拉克什是对的。我投入的日期无效,因此更新版本的PHP比旧版本更容易。

我与PHP的版本进行了并排比较。当前的PHP版本似乎抛出错误。旧版本似乎会尽力更正日期。