public function isMDYDate( $val){
$len = strlen($val);
$str = array();
//(MM/DD/YY) 例如:11/11/11 为 2011-11-11
if($len==8){
$reg = '/^((0[1-9]|1[012])[-\/.](0[1-9]|[12][0-9]|3[01])[-\/.][0-9]?[0-9]?[0-9]{2})*$/';
$split = explode("/", $val);
$str[0] = $split[0];//month
$str[1] = $split[1];//day
$str[2] = $split[2];//year
//1938-2037(2038-1-1以后错误)
if($str[2]<38){
$str[2] = '20'.$str[2];
}else{
$str[2] = '19'.$str[2];
}
}else{
return false;
}
//(MM/DD/YY)
if (!preg_match($reg, $val)) {
return false;
}
//日期判断
if (!checkdate($str[0], $str[1], $str[2])) {
return false;
}
return true;
}
在PHP中判断日期格式,通过正则式判断时间格式是否正确。
正则式是从网上找的,根据需要改写成自己需要的了。
正则式可以判断MM/DD/YY和MM/DD/YYYY两种格式,通过长度来判断需要。
这里使用的是8位,php系统时间截止到2038年1月1日可以使用,
所以两位数字如果大于37的则为19XX年。小于38的为20XX年