php DateTime类的奇怪行为
$x = '23120-7-7';
$x = new \DateTime($x);
var_dump($x);
给予
object(DateTime)#988 (3) {
["date"]=>
string(19) "2000-07-07 23:12:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
我想验证日期,但php中只有datetime类。我该如何检查
我的日期有效吗?
答案 0 :(得分:2)
使用date_create_from_format
$x = '23120-7-7';
$x = \DateTime::createFromFormat('Y-m-d', $x);
var_dump($x);
输出:
bool(false)
要查看错误详情:
$errors = DateTime::getLastErrors();
var_dump($errors);
输出:
array(4) {
["warning_count"]=>
int(1)
["warnings"]=>
array(1) {
[7]=>
string(27) "The parsed date was invalid"
}
["error_count"]=>
int(2)
["errors"]=>
array(2) {
[4]=>
string(40) "The separation symbol could not be found"
[7]=>
string(13) "Trailing data"
}
}
答案 1 :(得分:0)
如果您想要直接回答,可以使用“checkdate”方法。首先用破折号( - )爆炸日期,或许,我不知道你使用的样式日期,然后使用checkdate。
答案 2 :(得分:0)
尝试将其转换为时间戳,然后使用您需要的日期(“y-m-d”,时间戳)设置新日期,并检查错误