javascript怎麼判斷日期是否合理

PHPz
發布: 2023-04-21 09:29:49
原創
2216 人瀏覽過

隨著網路的發展,越來越多的網站或應用程式需要涉及日期的計算或驗證。而在JavaScript中,判斷日期是否合理是常見的問題。那麼,該如何判斷日期是否合理呢?接下來,我們一起來探討一下。

一、日期格式

在判斷日期是否合理之前,首先需要確認輸入的日期格式是否正確,常見的日期格式有以下三種:

  1. #yyyy/MM/dd
  2. yyyy-MM-dd
  3. yyyy年MM月dd日

其中,yyyy表示年份,MM表示月份,dd表示日。

其中,前兩種日期格式較常見,也是在開發中最常見的日期格式。

二、閏年判斷

在判斷日期是否合理時,首先需要判斷年份是否為閏年。

閏年的定義:公曆年份為4的倍數的,且不是100的倍數,是閏年;公曆年份是400的倍數是,也是閏年。例如:2000年是閏年,1900年不是閏年。

在JavaScript中,判斷閏年的程式碼如下:

function isLeapYear(year) {
  return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
登入後複製

三、日期校驗

有了閏年判斷的基礎,接下來就可以進行日期的校驗了。具體來說,對於一個日期字串,可以按照以下方式進行校驗:

  1. 使用正規表示式檢驗日期格式是否符合規範
  2. 將年、月、日分別提取出來
  3. 對月份進行校驗,月份應該在1-12之間
  4. 對日進行校驗,日的範圍應該在1-31之間,但根據不同的月份和閏年情況,日的範圍可能會有所不同

以下是具體的步驟和程式碼實作:

正規表示式校驗格式

function checkDate(dateStr) {
  var reg = /^(\d{4})(\/|-|\u5e74)(\d{1,2})(\/|-|\u6708)(\d{1,2})/;
  return reg.test(dateStr);
}
登入後複製

年、月、日提取

function getDateInfo(dateStr) {
  var dateArr;
  if (dateStr.indexOf('/') != -1) {
    dateArr = dateStr.split('/');
  } else if (dateStr.indexOf('-') != -1) {
    dateArr = dateStr.split('-');
  } else {
    dateArr = dateStr.split('\u5e74');
    dateArr[1] = dateArr[1].replace('\u6708', '');
    dateArr[2] = dateArr[2].replace('\u65e5', '');
  }
  return {
    year: parseInt(dateArr[0]),
    month: parseInt(dateArr[1]),
    day: parseInt(dateArr[2])
  }
}
登入後複製

月校驗

function checkMonth(month) {
  return month >= 1 && month <= 12;
}
登入後複製

日校驗

function checkDay(year, month, day) {
  var maxDay;
  switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      maxDay = 31;
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      maxDay = 30;
      break;
    case 2:
      if (isLeapYear(year)) {
        maxDay = 29;
      } else {
        maxDay = 28;
      }
      break;
    default:
      return false;
  }
  return day >= 1 && day <= maxDay;
}
登入後複製

四、總結

###透過日期格式、閏年和日期校驗的講解,相信大家已經能夠學會如何判斷日期是否合理。當然,實現起來可能也會有一定的難度,需要大家在實作中多多練習。希望這篇文章對大家有幫助,感謝閱讀。 ###

以上是javascript怎麼判斷日期是否合理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板