我正在尝试在PHP中验证日期,但问题是有些日期有效,例如:“02/2/2015”返回true,“20/12/2015”false返回,是一个严重的问题,我发现代码中没有错误。
功能
<?php
function check_date($date) {
$open_date = explode('/', $date);
if (count($open_date) == 3) {
if (checkdate($open_date[0], $open_date[1], $open_date[2])) {
return true;
} else {
return false;
}
} else {
return false;
}
}
//$date = "02/2/2015"; // return true !
$date = "20/12/2015"; // return false ?
if(check_date($date)) {
echo "valid";
} else {
echo "invalid";
}
?>
怎么能解决这个问题?
答案 0 :(得分:1)
checkdate
按此顺序预计月,日和年:
https://secure.php.net/manual/en/function.checkdate.php
如果您的日期格式为日/月/年,那么您仍然可以使用checkdate
,您只需更改参数的顺序:
if (checkdate($open_date[1], $open_date[0], $open_date[2]))
答案 1 :(得分:0)
checkdate函数的签名看起来像checkdate(month,day,year);
。你最多可以有12个月而不是20岁。: - )