ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の日付インスタンスを確実に検証するにはどうすればよいですか?

JavaScript の日付インスタンスを確実に検証するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 02:06:10277ブラウズ

How Can I Reliably Validate JavaScript Date Instances?

JavaScript での Date インスタンスの有効性の検証

JavaScript で Date インスタンスの有効性を判断するのは難しい場合があります。 「無効な日付」 問題を調べて、無効な Date オブジェクトを確実に検出する解決策を見つけてみましょう。

Date オブジェクトは、特定の瞬間を表す JavaScript 構造体です。以下の例に示すように、無効な日付文字列から Date インスタンスを作成するときに問題が発生します。

var d = new Date("foo");

このコードは、オブジェクト型で Date プロトタイプから継承する「Invalid Date」インスタンスを生成します。ただし、Object.prototype.toString.call(d) は "[object Date]" を返し、d instanceof Date は true と評価されます。

解決策:

これは次のとおりです。有効な Date インスタンスを確認する簡単な方法:

if (Object.prototype.toString.call(d) === "[object Date]") {
  if (isNaN(d.getTime())) {
    // Invalid Date
  } else {
    // Valid Date
  }
} else {
  // Not a Date object
}

このメソッドは、インスタンスが Date であることを確認します。オブジェクトであり、その時間値が NaN ではないことを確認します。いずれかの条件が失敗した場合、Date インスタンスは無効とみなされます。

Update [2018-05-31]:

外部コンテキストからの Date オブジェクトが心配な場合は、より単純な検証関数を使用できます:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

注[2021-02-01]:

「無効な日付」と「無効な日付オブジェクト」には違いがあることに注意することが重要です。この回答は、日付入力文字列ではなく、Date インスタンスの検証に焦点を当てています。

以上がJavaScript の日付インスタンスを確実に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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