这种格式10-7-2010
可以用php验证吗?
使用此脚本:
$array = explode('-', $str);
$day = $array[0];
$month = $array[1];
$year = $array[2];
$Valid = checkdate($month, $day, $year);
我有这个错误:
checkdate() expects parameter 2 to be long
如何验证此类格式? 提前致谢
答案 0 :(得分:3)
尝试更改为:
$Valid = checkdate((int)$month, (int)$day, (int)$year);
编辑:我尝试了你的代码并且工作正常,你是否可能在某个地方尝试传入格式不正确的日期?
edit2:10-7-2007是一个有效的日期,但听起来你觉得它应该不是?这是一个过去的日期,所以如果你想确定一个日期是否在将来,你可以做这样的事情:
$isValid = ( strtotime("$year-$month-$day") > time() );
答案 1 :(得分:0)
谢谢你的帮助。我终于得到了一个完整的代码(有其他条件)。
我在这里发帖,希望它可以帮助别人。
<?php
function valid_date($date) // if the date is valid, then the function returns true. else returns false.
{
$array = explode('/', $date, 3);
if (strlen($date) == 10 && substr_count($date, '/') == 2 && checkdate($array[1], $array[0], $array[2]) && substr_count($date, ' ') == 0) {
return true;
} Else {
return false;
}
}
?>
由于