1

当以下得到坏数据时,PHP 中止。

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);
4

2 回答 2

3

使用trycatch

try {
  $date = new DateTime($date);
} catch(Exception $e) {
  echo "Invalid date... {$e->getMessage()}";
}
于 2013-06-28T20:22:21.430 回答
0

如前所述@Rob W,您必须抓住该异常。

但可能导致该异常的是不适当的日期时间格式。

要解决此问题,您可以改为:

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

于 2013-06-28T20:34:46.400 回答