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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-13 14:12:11144ブラウズ

How Can I Reliably Detect Invalid JavaScript Date Instances?

無効な JavaScript Date インスタンスの検出

JavaScript で Date オブジェクトの有効性を判断するのは難しい場合があります。オブジェクトの型とinstanceof演算子をチェックしたくなるかもしれませんが、これらの方法では不十分です。

JavaScriptの「無効な日付」の概念

一部の言語とは異なり、JavaScriptは有効な日付と無効な日付を明示的に区別しません。代わりに、無効な日付を NaN (非数値) の時刻値を持つオブジェクトとして表します。

isValidDate 関数の定義

Date オブジェクトかどうかを確認するにはが有効な場合は、次の手順を使用できます:

  1. オブジェクトが Date インスタンスであることを確認します。 Object.prototype.toString.call(d) === "[object Date]"
  2. 日付の時刻値が NaN であるかどうかを確認します: isNaN(d)

両方の条件がある場合が満たされると、Date オブジェクトが考慮されます。無効です。

実装

isValidDate 関数の実装は次のとおりです。

function isValidDate(d) {
  if (Object.prototype.toString.call(d) === "[object Date]") {
    return !isNaN(d);
  } else {
    return false;
  }
}

同一コンテキスト日付オブジェクトの代替

Date のみを使用する場合同じ JavaScript コンテキスト内で作成されたオブジェクトの場合は、関数のより単純なバージョンを使用できます。

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

「無効な日付」に関する注意

次のことに注意することが重要です。この関数は、Date オブジェクトが有効かどうかのみを検証し、日付自体が有効かどうかは検証しません (例: 2013-13-32)。入力日付の検証には、別の方法が必要です。

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

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