如何在PHP中检查失败的日期时间?

如何在PHP中检查失败的日期时间?,php,datetime,error-handling,Php,Datetime,Error Handling,当以下内容获取错误数据时,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($TRANSAC

当以下内容获取错误数据时,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);

使用
try
catch

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

正如
@robw
已经说过的,你必须抓住那个异常

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

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

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

更多信息:

DateTime::createFromFormat
不会引发异常。它返回布尔值
false