Posted on 2006-07-13 06:52
Ardor Leo 閱讀(499)
評論(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;
????} ???
}