php日期格式正则表达式检查

时间:2011-04-26 19:16:46

标签: php regex date

我正在尝试使用PHP正则表达式对日期字段“YYYYMMDD”进行验证。我试过这样的事情

/([0-9]{4})([0-9]{2})([0-9]{2})/

但是在这一个中,对于MM或DD,它将接受任意两个数字,如01-99,但我希望MM的01-12和DD的01-31。有关这样做的任何建议吗?

感谢

5 个答案:

答案 0 :(得分:4)

这应该做的工作:

function dateValidate($date) {
    $t = strtotime($date);
    return date('Ymd', $t) == $date;
}

编辑:值得注意的是,这不会像正则表达式那样快,但在明显的性能方面会很好。

答案 1 :(得分:3)

除了正则表达式,您还可以拆分字符串并使用 checkdate 查看日期是否有效。

答案 2 :(得分:1)

正则表达式对于日期验证似乎不太实用。为什么不将它分成几部分,然后使用checkdate()

答案 3 :(得分:0)

本月,您可以使用:

(0[1-9]|1[012])

几天:

(0[1-9]| [12][0-9]|3[01])

一些很好的例子here

答案 4 :(得分:0)

请勿使用checkdate作为checkdate('1 \'','1','2000')验证为TRUE。