Posted on 2006-07-13 06:52
Ardor Leo 阅读(492)
评论(0) 编辑 收藏 所属分类:
有点心得
这是最近自己写的一个校验如“2006-07-13 00:00:00”形式日期的javascript代码。考虑到了数字验证、闰年、2月,30天31天,小时,分,秒的检验。思路稍偏,记一下
//Long time format validate,for example "2006-07-13 00:00:00"
functionlongDateParse(dateStr){
var THIRTY_DAY={
3:30,
5:30,
8:30,
10:30
}
var dateArray=dateStr.split(" ");
if(dateArray.length<=0){returnfalse}
varstandDateArray=dateArray[0].split("-")
if(standDateArray.length<=0){returnfalse}
var y=standDateArray[0]
var m=standDateArray[1]-1
var d=standDateArray[2]
var testDate=newDate(y,m,d)
//alert(testDate)
var yTest=testDate.getFullYear()!=y
var mTest=testDate.getMonth()!=m
var dTest=testDate.getDate()!=d
if(yTest||mTest||dTest){
returnfalse
}
var runNianTest=y%4
if(runNianTest==0&&m==2&&d>29){
returnfalse;
}
if(runNianTest!=0&&m==2&&d>28){
returnfalse;
}
if(THIRTY_DAY[m]&&d>THIRTY_DAY[m]){
returnfalse;
}
//alert(testDate)
var timeArray=dateArray[dateArray.length-1].split(":");
if(timeArray.length!=3){return false}
var hTest=((timeArray[0]>=0)&&(timeArray[0]<=23)&&(timeArray[0]!='-0'))?true:false;
var mTest=((timeArray[1]>=0)&&(timeArray[1]<=59)&&(timeArray[1]!='-0'))?true:false;
var sTest=((timeArray[2]>=0)&&(timeArray[2]<=59)&&(timeArray[2]!='-0'))?true:false;
if(hTest&&mTest&&sTest){
returnnewDate(y,m,d,timeArray[0],timeArray[0],timeArray[0]);
}else{
returnfalse;
}
}