明辉站/技术开发/内容

JavaScript中怎么判断一个字符串是否为合法日期

技术开发2023-07-26 阅读
[摘要]/*作者:何志强[hhzqq@21cn.com]日期:2000-08-09版本:1.0功能:判断一个字符串是否为合法日期*///日期格式:YYYY-MM-DDfunction isdate(strDate) var strSeparator = "-"; //日期分隔符 var...
/*
作者:何志强[hhzqq@21cn.com]
日期:2000-08-09
版本:1.0
功能:判断一个字符串是否为合法日期
*/

//日期格式:YYYY-MM-DD
function isdate(strDate){
 var strSeparator = "-"; //日期分隔符
 var strDateArray;
 var intYear;
 var intMonth;
 var intDay;
 var boolLeapYear;
 
 strDateArray = strDate.split(strSeparator);
 
 if(strDateArray.length!=3) return false;
 
 intYear = parseInt(strDateArray[0],10);
 intMonth = parseInt(strDateArray[1],10);
 intDay = parseInt(strDateArray[2],10);
 
 if(isNaN(intYear) isNaN(intMonth) isNaN(intDay)) return false;
 
 if(intMonth>12 intMonth<1) return false;
 
 if((intMonth==1 intMonth==3 intMonth==5 intMonth==7 intMonth==8 intMonth==10 intMonth==12)&&(intDay>31 intDay<1)) return false;
 
 if((intMonth==4 intMonth==6 intMonth==9 intMonth==11)&&(intDay>30 intDay<1)) return false;
 
 if(intMonth==2){
if(intDay<1) return false;

boolLeapYear = false;
if((intYear%100)==0){
 if((intYear%400)==0) boolLeapYear = true;
}
else{
 if((intYear%4)==0) boolLeapYear = true;
}

if(boolLeapYear){
 if(intDay>29) return false;
}
else{
 if(intDay>28) return false;
}
 }
 
 return true;
}

……

相关阅读