我正在为Wordpress编写一个PHP脚本,我正在对我们的系统进行API调用,它包含一个.Net到Json格式的DateTime字符串。使用正则表达式我已经将它剥离到自Unix Epoch以来的秒数。据我所知,我应该能够使用DateTime :: createFromFormat('U',$ time)创建一个DateTime对象;但是脚本在遇到它时会停止执行它(它会执行到那一点的所有操作)。我把它包裹在一个try / catch中,但即使那个没有被执行,它只是简单地“死”,我想。
这里发生了什么?
preg_match_all('/\d+/', $post->discussion->posttime, &$ms);
$ms = $ms[0];
var_dump($ms[0]);
$time = substr($ms[0], 0, strlen($ms[0]) - 3);
var_dump($time);
$date = DateTime::createFromFormat('U', $time);
//Nothing after the above line is executed
var_dump($date);
...
页面输出如下:
string(13) "1332244919776"
string(10) "1332244919"
在显示DateTime行之后我没有放置任何东西(或者据我所知,执行)。我已经在线使用了有效的Unix时间戳,但它仍然不起作用。我也尝试了其他格式('Y-m-d')与匹配的日期字符串格式,但没有一个有效。使用new DateTime()创建常规的“now”DateTime对象;虽然有效。
答案 0 :(得分:1)
这听起来像是一个致命错误,报告错误。
问题的最可能原因是您正在使用某个版本的php< 5.3。在版本5.3中添加了对createFromFormat
的支持,而在版本5.2中添加了DateTime
对象。