欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-21 11:17:58
转载者最起码注明作者和出处!http://www.cnblogs.com/guominqiu 复制代码 代码如下: //--------------------------...
转载者最起码注明作者和出处!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 || intmonth<1) {
errormsg += "日期格式错误: 月份必须介于1和12之间";
return errormsg;
}
if((intmonth==1||intmonth==3||intmonth==5||intmonth==7
||intmonth==8||intmonth==10||intmonth==12)
&&(intday>31||intday<1)) {
errormsg += "日期格式错误: 大月的天数必须介于1到31之间";
return errormsg;
}
if((intmonth==4||intmonth==6||intmonth==9||intmonth==11)
&&(intday>30||intday<1)) {
errormsg += "日期格式错误: 小月的天数必须介于1到31之间";
return errormsg;
}
if(intmonth==2){
if(intday < 1) {
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;
}