有没有一种标准的方法来验证DATETIME值是否格式正确并且它是一个有效的日期?

时间:2011-12-16 16:04:31

标签: php mysql

我需要通过GET请求传递DATETIME值,并验证收到的日期是否格式正确且有效。我想在发送端我会使用UNIX_TIMESTAMP转换DATETIME值,以便在接收端轻松验证,然后通过FROM_UNIXTIME将其转换回DATETIME。

否则,似乎在接收端我需要使用正则表达式来验证DATETIME格式,然后使用checkdate()检查日期是否有效。这似乎是一个常见的问题,所以我想知道是否有办法做到这一点,不涉及这种转换。

1 个答案:

答案 0 :(得分:2)

DateTime类构造函数接受有效的日期时间字符串。如果它传递了无效的日期时间,则会抛出异常。获得DateTime对象后,可以使用DateTime::format

以任何方式对其进行格式化
$date = 'bad date string'

try {
  $obj = new DateTime($date);
  echo 'valid date: '. $obj->format('Y-m-d');
} catch (Exception $e) {
  echo 'invalid date';
}