6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScript 有効な日付か判断する方法 isNaN

Last updated at Posted at 2022-06-09

Dateオブジェクトに変換して有効かどうか判断する

var date = new Date("2000-10-40"); // 40日は存在しない

console.log(isNaN(date.getDate()));
// true

解説

  1. 日付をDateオブジェクトに変換する。
  2. getDateメソッドで日付の情報を取得する。
  3. getDateメソッドは有効でない日付だとNaNを返す。
  4. それを isNaN で判断する。( isNaN() 関数は引数が NaN かどうかを判定します)

yyyyMMdd の形式の日付は、Dateオブジェクトへの変換がうまくいかず、正しい日付でも有効でない日付と判断されることがあります。形式を変換してから行う必要があります。

処理速度
isNaN(new Date()) のように、Dateオブジェクトを直接isNaNで判定することができますが、getDateを判定させた方が高速になるケースが多いらしいです。

Invalid Dateで判断すれば良いのではないか?
有効ではない日付をnew Dateに渡すとInvalid DateというDateオブジェクトが返されます。
toString() を使って Invalid Date かどうかを判断する方法もあります。
必ず Invalid Date の文字列を返す実装の場合はそれでもよいのですが、必ず Invalid Date の文字列を返すとは限らない実装の場合は isNaN() で判定をしましょう。
 
 

参考にした記事
https://ribbit.konomi.app/blog/javascript-check-date-one-liner/

6
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?