在DD-MM-YYYY中验证日期“在PHP格式化

时间:2010-07-15 15:34:27

标签: php

这种格式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

如何验证此类格式? 提前致谢

2 个答案:

答案 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;
    }
}
?>

由于