加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP DateTime接收无效日期

发布时间:2020-12-13 16:27:55 所属栏目:PHP教程 来源:网络整理
导读:我无法使用 PHP DateTime类,更具体地说是DateTime :: createFromFormat(). 我从字符串获取日期,然后尝试使用DateTime :: createFromFormat()来设置DateTime对象.但是,当我给这个函数一个不能存在的日期,它仍然工作,给我一个有效的DateTime对象,有效的日期,这
我无法使用 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');
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读