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

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

Linda Hamilton
リリース: 2024-12-10 15:04:11
オリジナル
365 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート