Nic*_*ick 1 php validation date
因此,用户可以通过键入或使用日期选择器输入出生日期.这可能会出错,所以在服务器端我想检查它是否是一个有效的日期.
我在strtotime()上阅读了很多,看了很多例子,但不是100%正确的例子.
这就是我所拥有的:
$geboortedatum = $_POST['geboortedatum'];
$geboortedatum = date("Y-m-d", strtotime($geboortedatum));
list($y, $m, $d) = explode("-", $geboortedatum);
// var_dump(checkdate($d,$m,$y));
if(checkdate($d, $m, $y)) {
echo "OK Date";
}
else {
echo "BAD Date";
exit();
}
Run Code Online (Sandbox Code Playgroud)
这大部分时间都有效.有没有可靠的方法来检查输入是否是真实且正确的日期?
//编辑
那不是一个好例子!当用户输入31-31-1980时,它也不起作用.这也是有效的,虽然不应该!
您可以使用的组合strtotime(),并checkdate()看到如果日期是有效的:
function isRealDate($date) {
if (false === strtotime($date)) {
return false;
}
list($year, $month, $day) = explode('-', $date);
return checkdate($month, $day, $year);
}
Run Code Online (Sandbox Code Playgroud)
用法
if (isRealDate($geboortedatum)) {
// date is ok
}
else {
// date is not ok
}
Run Code Online (Sandbox Code Playgroud)