🗓
Day.jsで Invalid Date を検出する方法
はじめに
JavaScriptの日付操作ライブラリであるDay.jsは、その軽量さと使いやすさで人気です。しかし、日付のバリデーションにおいては、Moment.jsとは異なる挙動を示します。この記事では、Day.jsを使用して不正な日付を検出する方法について解説します。
Day.jsとMoment.jsの違い
Day.jsとMoment.jsはどちらもJavaScriptで使用される日付操作ライブラリですが、isValid関数における挙動に大きな違いがあります。Moment.jsでは、isValid関数は日付の存在をチェックしますが、Day.jsでは単にフォーマットの可能性を判断します。
存在しない日付のバリデーション
※ Day.jsでisValid関数を使用すると、不正な日付(例:「2024年2月31日」)も有効と判断されます。
dayjs('2020/02/31', 'YYYY/MM/DD').isValid() // true
moment('2020/02/31', 'YYYY/MM/DD').isValid() // false
実際に存在する日付かどうかを判定するにはdayjs関数の第三引数に true
を入れることで判断できます。
dayjs('2020/02/31', 'YYYY/MM/DD', true).isValid() // false
Discussion