php中如何校验日期时间的有效性

发布于 2022-09-05 14:52:17 字数 1043 浏览 14 评论 0

php中有系统函数checkdate()来校验日期的合法性,但时间的合法性只能自己写吗?这样要分开校验日期和时间,有什么方法可以一次性校验吗?

我也有看jenssegers/datenesbot/carbon,但我没找到校验日期时间的方法,我也 Google 查到了这个问题How To Check is a string is a valid date,但并没有能解决我的问题,请问如何解决该问题?

自己简单写了一下校验:

$dt = '2017-7-3 23:90:99';
$dt_arr = explode(' ', $dt);
list($year, $month, $day) = explode('-', $dt_arr[0]);
list($hour, $minute, $second) = explode(':', $dt_arr[1]);
if(!checkdate($month, $day, $year) || $hour < 0 || $minute < 0 || $second < 0 || $hour > 23 || $minute > 59 || $second > 59) {
    echo 'Invalided datetime';
} else {
    echo 'OK';
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

缪败 2022-09-12 14:52:17
function verifyDate($date) {
    try {
        new DateTime($date);
        return true;
    } catch(\Exception $e) {
        return false;
    }
}

不知道这样会不会显得太low

梦中楼上月下 2022-09-12 14:52:17

你所说的事件合法性到底指的是什么呢? 看了你判断逻辑 , $res = strtotime($dt); 看看能不能转换成时间戳,不能转换就是不合法的!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文