ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptで日付が妥当かどうかを判断する方法

JavaScriptで日付が妥当かどうかを判断する方法

PHPz
PHPzオリジナル
2023-04-21 09:07:382159ブラウズ

インターネットの発展に伴い、日付の計算や検証を必要とする Web サイトやアプリケーションがますます増えています。 JavaScript では、日付が妥当かどうかを判断するのが一般的な問題です。では、その日付が妥当かどうかはどうやって判断すればよいのでしょうか?次に、一緒に話し合ってみましょう。

1. 日付形式

日付が適切かどうかを判断する前に、まず入力された日付形式が正しいかどうかを確認する必要があります。一般的な日付形式は 3 つあります:

  1. yyyy/MM/dd
  2. yyyy-MM-dd
  3. yyyy年MMmonthdd日

ここで、yyyyは年を表し、MMは月を表します。 dd は日を表します。

これらの中で、最初の 2 つの日付形式はより一般的であり、開発において最も一般的な日付形式でもあります。

2. うるう年の判定

日付が妥当かどうかを判定するには、まずその年がうるう年であるかどうかを判定する必要があります。

閏年の定義: 4 の倍数で 100 の倍数ではないグレゴリオ暦年は閏年です。また、400 の倍数であるグレゴリオ暦年も閏年です。たとえば、2000 年はうるう年ですが、1900 年はうるう年ではありません。

JavaScript で閏年を判定するコードは次のとおりです:

function isLeapYear(year) {
  return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}

3. 日付の検証

閏年判定の根拠があれば、次に日付を検証します。 . .具体的には、日付文字列の場合は次のように検証できます。

  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;
}
4. まとめ## 日付の形式、閏年、日付の検証の説明を通じて、日付が妥当かどうかの判断方法を誰でも学ぶことができると思います。もちろん、実装するのは難しいかもしれないので、実際にはもっと練習する必要があります。この記事が皆様のお役に立てれば幸いです、読んでいただきありがとうございます。

以上がJavaScriptで日付が妥当かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。