2013-06-28 71 views
0

當以下錯誤數據PHP中止時。如何檢查PHP中失敗的DateTime?

PHP Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (980671) at position 4 (7): Unexpected character' 

我該如何捕獲這個數據是否不好採取其他措施,以便PHP問題不會失敗?

$date = new DateTime($TRANSACTION_DATE_MMDDYY_raw); 

回答

2

使用trycatch

try { 
    $date = new DateTime($date); 
} catch(Exception $e) { 
    echo "Invalid date... {$e->getMessage()}"; 
} 
0

正如@Rob W已經說過,你必須捕獲該異常。

但是,可能會導致該異常是inaproppriate日期時間格式。

爲了解決這個問題,你可以這樣做,而不是:

try { 
    $dt = DateTime::createFromFormat("MMDDYY", $TRANSACTION_DATE_MMDDYY_raw) ; 
} catch(Exception $e){ 
    echo "Something went wrong: {$e->getMessage()} " ; 
} 

更多一點:http://www.php.net/manual/en/datetime.createfromformat.php

+0

'日期時間:: createFromFormat'不拋出異常。它會返回布爾值'false'! – SteveB