moment.jsで日付周りの処理を書いていて、1週目の挙動がおかしかった。
年の指定をYYYY
からgggg
に変更すれば期待した挙動になった。
状況
日付から 年+週番号
を抜き出して利用していた。
moment.jsのフォーマットでいう YYYYww
。
間違い
2018/12/30は2019年の1週目になるので期待する出力は 201901
だったが、 YYYY
は2018になる。
正解
正しくは ggggww
。さすがmoment.js そのためのフォーマット識別子を用意していた。
大文字と小文字の違いは ISOで規定された週番号(GGGG
, WW
)と、ロケールに応じた週番号(gggg
, ww
)