我正在尝试使用PHP的DateTime来验证日期,但DateTime将接受一些格式正确但无效的日期,如2015-02-30,它将变成2015年3月2日,而不会抛出异常.使用DateTime或其他方法处理此问题的任何建议?
编辑:谢谢大家的帮助!我通过捕获异常来处理错误,但我没有意识到异常只是抛出错误而不是警告,而这种输入只会发出警告.
解决方法:
使用DateTime :: getLastErrors()检查错误.形成良好但无效的日期:
$date = '2015-02-30';
DateTime::createFromFormat('Y-m-d', $date);
$errors = DateTime::getLastErrors();
print_r($errors);
产量:
Array
(
[warning_count] => 1
[warnings] => Array
(
[10] => The parsed date was invalid
)
[error_count] => 0
[errors] => Array
(
)
)
而未成立的日期$date = ’02 -30′;收益率:
Array
(
[warning_count] => 0
[warnings] => Array
(
)
[error_count] => 1
[errors] => Array
(
[5] => Data missing
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。