2012-03-20 80 views
1

我正在为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对象;虽然工作。

+3

在其他任何内容之前添加此行:'error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);'。然后运行脚本并让我们知道输出。 – 2012-03-20 21:04:00

+0

是的,间接的答案是,你应该打开错误报告,并找出发生了什么问题。添加建议的简单代码行。你可能需要添加'ini_set(“display_errors”,“1”);'。 – octern 2012-03-20 21:14:59

回答

1

这听起来像是一个致命的错误报告错误。

问题最可能的原因是您使用的是PHP < 5.3版本。在版本5.3中添加了对createFromFormat的支持,而在版本5.2中添加了DateTime对象。

+0

phpinfo说“PHP版本5.2.13”,你是对的!谢谢。 – 2012-03-20 21:15:28

+0

@Chris不客气。 – jeroen 2012-03-20 21:17:16