PHP正则表达式匹配日期

时间:2013-05-12 12:39:14

标签: php regex date

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

3 个答案:

答案 0 :(得分:0)

试试这个:

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

这只会与日期匹配,但您必须验证日期是否有效,例如没有2月31日这样的事情。

答案 1 :(得分: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()功能。

答案 2 :(得分: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()不会削减它。