dayjs を使いこなす

日本語で曜日を取得する

日本語で曜日を取得するには 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 に変換してくれます。そこで、この実装を利用して、上記の例のように一度フォーマットしてから元の値と比較することで正しい日付だったかを判定しています。

タイトルとURLをコピーしました