您好,欢迎访问一九零五行业门户网

JavaScript 判断日期格式是否正确的实现代码_时间日期

转载者最起码注明作者和出处!http://www.cnblogs.com/guominqiu
复制代码 代码如下:
//---------------------------------------------------------------------------
//判断日期格式是否正确
//返回值是错误信息, 无错误信息即表示合法日期字符串
function isdatestring(strdate){
var strseparator = -; //日期分隔符
var strdatearray;
var intyear;
var intmonth;
var intday;
var boolleapyear;
var errormsg = ; //出错信息
strdatearray = strdate.split(strseparator);
//没有判断长度,其实2008-8-8也是合理的//strdate.length != 10 ||
if(strdatearray.length != 3) {
errormsg += 日期格式必须为: yyyy-mm-dd;
return errormsg;
}
intyear = parseint(strdatearray[0],10);
intmonth = parseint(strdatearray[1],10);
intday = parseint(strdatearray[2],10);
if(isnan(intyear)||isnan(intmonth)||isnan(intday)) {
errormsg += 日期格式错误: 年月日必须为纯数字;
return errormsg;
}
if(intmonth>12 || intmontherrormsg += 日期格式错误: 月份必须介于1和12之间;
return errormsg;
}
if((intmonth==1||intmonth==3||intmonth==5||intmonth==7
||intmonth==8||intmonth==10||intmonth==12)
&&(intday>31||intdayerrormsg += 日期格式错误: 大月的天数必须介于1到31之间;
return errormsg;
}
if((intmonth==4||intmonth==6||intmonth==9||intmonth==11)
&&(intday>30||intdayerrormsg += 日期格式错误: 小月的天数必须介于1到31之间;
return errormsg;
}
if(intmonth==2){
if(intday errormsg += 日期格式错误: 日期必须大于或等于1;
return errormsg;
}
boolleapyear = false;
if((intyear%100) == 0){
if((intyear%400) == 0)
boolleapyear = true;
}
else{
if((intyear % 4) == 0)
boolleapyear = true;
}
if(boolleapyear){
if(intday > 29) {
errormsg += 日期格式错误: 闰年的2月份天数不能超过29;
return errormsg;
}
} else {
if(intday > 28) {
errormsg += 日期格式错误: 非闰年的2月份天数不能超过28;
return errormsg;
}
}
}
return errormsg;
}
其它类似信息

推荐信息