2012-03-20 95 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