日本語で曜日を取得する
日本語で曜日を取得するには locale を指定します。この機能を使うには dayjs/locale/ja をインポートする必要があります。
import dayjs from 'dayjs'; import 'dayjs/locale/ja'; dayjs.locale('ja'); dayjs.format('YYYY/MM/DD(ddd)'); // => 2022/02/01(火)
ちなみに曜日のフォーマットに関しては次のテーブルを参考にしてください。日本語の場合は dd と ddd は同じになると思います。
Format | Output | Description |
---|---|---|
dd | Su-Sa | The min name of the day of the week |
ddd | Sun-Sat | The short name of the day of the week |
dddd | Sunday-Saturday | The name of the day of the week |
日付が正しいかバリデーションする
2022/02/01 という文字列が存在する日付かどうかを確認したいときの話です。
import dayjs from 'dayjs'; function validate(date, format) { return dayjs(date, format).format(format) === date; } validate('2022/02/01', 'YYYY/MM/DD'); // => true validate ('2022/02/31', 'YYYY/MM/DDD'); // => false
isValid 関数もあるのですが、この関数はフォーマットしか確認してくれません。そのため 2022/02/31 みたいな存在しない日付でもパスしてしまいます。
ところで、dayjs で 2022/02/31 をフォーマットすると親切なことに 2022/03/02 に変換してくれます。そこで、この実装を利用して、上記の例のように一度フォーマットしてから元の値と比較することで正しい日付だったかを判定しています。