用户输入,验证日期格式是否正确


User input, verify if it is correct date format

我有一个用户输入信息的表单。我希望能够检查他们输入到我的日期文本字段中的日期是否采用mm/dd/yy的正确格式。

如何检查用户输入的mm/dd/yy格式,如果不正确,显示一个错误,告诉他们输入的日期必须是mm/dd/yy格式。

谢谢

最好使用一个日期选择器或三个<select>,以确保用户别无选择,只能输入正确的日期格式。

我相信还有其他方法可以做到这一点,但是使用explode(),通过使用'/'作为分割字符,将传入的数据分离成[希望]三个条目的数组。

然后检查第一个值是否在1..12、第二个在1..31,最后一个在0 ~ 99之间。

更复杂的检查将确保每个月不超过适当的天数(为了额外加分,当且仅当年份可以被4整除时,允许29在month 02中(是的,这在所有世纪中都是混乱的,其中前两位数字不能被4整除,但对于年份格式,您仅限于yy))。

如果输入太短(我说5个字符以允许1/1/1)或太长(超过8个字符),则无效。

更好的格式是NOT要求分隔符,并确保字符串长度为6个字符,所有数字,并且每对数字都在您可接受的范围内。

$date='12/12/2011';
$reg="#^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)'d'd$#";
if (preg_match($reg, $date)) {
    echo "GOOD date.";
} else {
   echo "BAD date.";
}