微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理PHP DateTime中格式正确但无效的日期

我正在尝试使用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 举报,一经查实,本站将立刻删除。

相关推荐