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