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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-10 15:04:11362ブラウズ

How Can I Reliably Detect Invalid Date Instances in JavaScript?

JavaScript での無効な日付インスタンスの検出

JavaScript での日付オブジェクトの検証は、「無効な日付」インスタンスが存在するため、困難になる場合があります。これらのオブジェクトは有効に見えますが (instanceof Date は true を返します)、無効な日付を表します。この記事では、そのようなインスタンスを検出するためのさまざまなアプローチを検討します。

元の質問

提供されたコードは問題を示しています。

var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'

推奨解決策

1. Date.parse() を使用して検証する

Date.parse は日付文字列を解析し、有効な日付、または文字列が無効な場合は NaN を返します。これは、Date オブジェクトを作成する前に日付文字列を検証するために使用できます:

if (Date.parse("foo") === NaN) {
  // invalid date string
}

2。 NaN 時間値のテスト

既存の Date インスタンスの場合、時間値 (getTime() または valueOf()) をテストできます。

if (isNaN(d.getTime())) {
  // invalid Date object
}

このメソッドは ECMA に依存します。 -262 仕様。無効な Date オブジェクトに NaN 時刻値があることを示します。

推奨コード

これらの推奨事項に基づいて、次の関数を使用して Date インスタンスを検証できます。

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

代替メソッド

If外部 JS コンテキストからの Date オブジェクトには関心がありません。この単純な形式は次のようになります。推奨:

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

この回答は Date インスタンスの検証に焦点を当てていますが、日付入力自体の有効性はカバーしていないことに注意することが重要です (例: 、2013-13-32).

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

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