[JavaScript]JavaScript判斷日期格式是否正確

來源:互聯網
上載者:User

修改自http://blog.csdn.net/dallasnash/archive/2007/04/18/1569068.aspx

沒有多大變動,主要是返回錯誤資訊,以便調用函數部分可以alert出來。據說可以用Regex校正,下次再研究下。

轉載者最起碼註明作者和出處!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;
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.