-6

用于验证日期的正确正则表达式是什么。2009/10/22 或 2009/01/01 等平台 PHP

4

3 回答 3

0
<?php

$date = '2009/10/22';

if ( preg_match('/^(?:(19[0-9]{2}|20[0-9]{2}))\/(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])$/', $date ) ) {

    echo $date , ' is a valid date format.';

} else {

    echo $date , ' is not a valid date format!';

}

?>

除此之外,请确保您使用checkdate()函数。

于 2013-05-12T12:50:55.593 回答
0

你可以这样做——先验证格式,然后用它checkdate()来验证值:

$value = '2009/10/22';

echo valid_date($value) ? "Yep, $value is a valid date" : "Nah, it's not valid";

function valid_date($value)
{
    return preg_match('/^(?:(\d{4,})\/(\d{2})\/(\d{2}))$/', $value, $matches) === 1 && checkdate((int)$matches[2], (int)$matches[3], (int)$matches[1]);
}

平原preg_match()就是不会削减它。

于 2013-05-12T12:51:49.420 回答
0

尝试这个:

if (preg_match('#^\d{4}/\d{2}/\d{2}$#', $date)) {
 ...
}

这只会匹配一个日期,但您必须验证该日期也有效,例如,没有 2 月 31 日这样的事情。

于 2013-05-12T12:43:52.457 回答