当PHP到达一行代码时,PHP停止执行
我正在为Wordpress开发PHP脚本,并且正在对我们的系统进行API调用,并且它包含.Net到Json格式的DateTime字符串。使用正则表达式我已经将它剥离到Unix Epoch以来的秒数。据我所知,我应该能够使用DateTime :: createFromFormat('U',$ time)创建一个DateTime对象;但是脚本在遇到它时会停止执行(它会执行到此为止的所有内容)。我把它包装在一个try/catch中,但即使没有被执行,我猜也只是简单地'死亡'。当PHP到达一行代码时,PHP停止执行
这是怎么回事?
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"
没有我把显示后的日期时间线(或据我所知,执行)。我使用了来自在线的有效Unix时间戳,但它仍然无效。我试过其他格式('Y-m-d'),它们都有匹配的日期字符串格式,并且它们都没有工作。使用新的DateTime()创建常规'现在'DateTime对象;虽然工作。
这听起来像是一个致命的错误报告错误。
问题最可能的原因是您使用的是PHP < 5.3版本。在版本5.3中添加了对createFromFormat
的支持,而在版本5.2中添加了DateTime
对象。
phpinfo说“PHP版本5.2.13”,你是对的!谢谢。 – 2012-03-20 21:15:28
@Chris不客气。 – jeroen 2012-03-20 21:17:16
在其他任何内容之前添加此行:'error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);'。然后运行脚本并让我们知道输出。 – 2012-03-20 21:04:00
是的,间接的答案是,你应该打开错误报告,并找出发生了什么问题。添加建议的简单代码行。你可能需要添加'ini_set(“display_errors”,“1”);'。 – octern 2012-03-20 21:14:59