ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の日付インスタンスを確実に検証するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。