php中有系统函数checkdate()
来校验日期的合法性,但时间的合法性只能自己写吗?这样要分开校验日期和时间,有什么方法可以一次性校验吗?
我也有看jenssegers/date
和nesbot/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';
}
不知道这样会不会显得太low