JavaScript 判断日期格式是否正确的实现代码
阿发祥,北回归线的别称,vogue下载
转载者最起码注明作者和出处!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;
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
-
-
-
-
-
JS变量提升原理与用法实例浅析
本文实例讲述了js变量提升。分享给大家供大家参考,具体如下:该篇介绍什么是变量提升,写给像我一样的js新手看的简单来说变量提升就是 js会把var变量的声明自动...
[阅读全文]
-
-
-
网友评论