我无法使用
PHP DateTime类,更具体地说是DateTime :: createFromFormat().
我从字符串获取日期,然后尝试使用DateTime :: createFromFormat()来设置DateTime对象.但是,当我给这个函数一个不能存在的日期,它仍然工作,给我一个有效的DateTime对象,有效的日期,这不是我给它的日期.
代码示例:
$badDate = '2010-13-03'; $date = DateTime::createFromFormat('Y-m-d',$badDate); var_dump($date); /* object(DateTime)#284 (3) { ["date"]=> string(19) "2011-01-03 10:01:20" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } */
有任何想法吗?我真的需要一种检查日期有效性的方法.
谢谢.
编辑:
我刚刚找到为什么,看到我的答案.
您必须使用将包含错误的DateTime :: getLastErrors().解析的日期无效.
$badDate = '2010-13-03'; $date = DateTime::createFromFormat('Y-m-d',$badDate); if( DateTime::getLastErrors()['warning_count'] > 0 ){ //not a correct date }else{ //correct date print $date->format('Y-m-d'); }