Moment.jsからDay.jsに乗り換えたときにハマったこと
背景
JavaScriptで日付操作を行う有名なライブラリの1つに "Moment.js" があります。 プロジェクトでも利用していましたが「代替ライブラリを探すように」とのアナウンスがありました。
JavaScriptの日付操作ライブラリ「Moment.js」の開発チームは9月15日、プロジェクトのステータスとしてプロジェクトはメンテナンスモードに入り、代替ライブラリへの移行を推奨している。
cf. Moment.jsがメンテナンスモードへーー新機能開発は行わず | OSDN Magazine
代替ライブラリは "Day.js" に乗り換えることにしました。 (十分な機能があり、軽量で、Githubのスター数も多かったのが良さそう)
参考:
徐々にdayjsにコードを置き換えたのですが、数点ハマった箇所があったため備忘録としてまとめておきます。
ハマリポイント
日付フォーマット
const date = '2020-08-09'; // momentは以下でOK moment(date).format('Y-M-D') // 2020-8-9 // dayjsはYが1つではダメ dayjs(date).format('Y-M-D') // Y-8-9 dayjs(date).format("YY-MM-DD') // 20-08-09 dayjs(date).format('YYYY-MM-DD') // 2020-08-09
曜日フォーマット
const date = '2020-11-02'; // 月曜日 // momentはe moment(date).format('e') // 1 // dayjsはd dayjs(date).format('e') // e dayjs(date).format('d') // 1
多言語対応
// momentをimportすればOK import moment from 'moment' moment.locale('ja'); // 言語ごとにimportが必要 import dayjs from 'dayjs'; import 'dayjs/locale/ja'; import 'dayjs/locale/en'; // 言語ごとに必要 dayjs.locale('ja'); dayjs.locale('en');