【发布时间】:2014-02-04 13:03:40
【问题描述】:
目前,检查日期的最佳方法是什么?为什么?
以“现代方式”使用 DateTime?
$date="2014-02-04";
$dt = DateTime::createFromFormat("Y-m-d", $date);
return $dt !== false && !array_sum($dt->getLastErrors());
还是使用正则表达式?
$date="2014-02-04";
return (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$date));
你还有什么其他的cmets或者建议吗?
【问题讨论】:
-
将日期逻辑编码成正则表达式非常麻烦,而DateTime已经为您提供了一切。
-
请注意,检查日期的正则表达式方法比您编写的更复杂,因为您的模式也验证这种日期:
2014-02-31 -
@CasimiretHippolyte 是的,我写了一个简单的例子来说明情况。