読者です 読者をやめる 読者になる 読者になる

moment.js で曜日出力に注意

2年近く前に知ってから愛用している moment.js 曜日を出力しようと思って、
各国語対応の moment-with-locales.js を使ったら フォーマット dddd  または、ddd を使ったら曜日が日本語で出力されない。
あれ、そうだっけ?!

しかたなく、moment-with-locales.js 利用のまま、、moment.js の locale 関数を呼ぶことにしたら、ちゃんと曜日が出るものの、
chrome のコンソールをチェックすると、

Deprecation warning: use moment.updateLocale(localeName, config) to change an existing locale.
 moment.defineLocale(localeName, config) should only be used for creating a new locale
 See http://momentjs.com/guides/#/warnings/define-locale/ for more info.

ネットで検索してたら、、
github.com

なんだと! locale 関数じゃなくて、結局、updateLocale 関数を呼ぶのか!!

moment-with-locales.js 利用では、

moment.locale("ja",
   { weekdays: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],
    weekdaysShort: ["日","月","火","水","木","金","土"], }
);

でなくて、、

moment.updateLocale("ja",
   { weekdays: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],
    weekdaysShort: ["日","月","火","水","木","金","土"], }
);

moment.min.js を利用するなら、locale関数、

もっとも、moment-with-locales.js を使わずに、moment.min.js と、

https://github.com/moment/moment

ここから、locale にある ja.js を使用することにすれば、locale 関数も updatelocale関数も呼ばなくて済む。
CDNからの取得で書くと

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/ja.js"></script>

だけどダウンロードして自分ところで抱えて使う。

(1) moment-with-locales.js を使う場合
  自分のコードで moment updateLocale関数を実行
(2) moment.min.js を使う場合
  自分のコードで moment locale関数を実行
(3) moment.min.js と ja.js を使う場合
   locale 関数等は呼ばない。

(1) のmoment-with-locales.js をよく使ってたから、updateLocale関数呼出しが面倒でも
これが良いのか?

たった曜日のために。。悩ましい。