我想在PHP中验证日期格式YYYY-MM-DD
。但有些事情是错的,我找不到它?当正确时,正则表达式一直告诉我格式错误。
$datePattern = '/^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2]])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/';
$date = '2011-11-05';
if(!preg_match($datePattern,$date)){
die('Wrong format in date!');
}
答案 0 :(得分:1)
您的正则表达式(月子表达式)中不需要额外的]
。所以它应该是
^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$
答案 1 :(得分:1)
您可以稍微简化一下:
/^(2[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[0-1])$/
答案 2 :(得分:0)
你的正则表达式中有一个额外的]
:
'/^(2[0-9][0-9][0-9])\-(0[1-9]|1[0-2]])\-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/'
^
放下它。
正则表达式不是验证日期的最佳工具。您应该使用checkdate功能。