【javascript】Date関数の引数で「月」は0から始まる
Google Chartsを使ってグラフを作っていたのですが、31日が抜けるという事象があったので覚書です。
棒グラフで横軸を日付(dd)で表示していたのですが、31日が抜けていることに気が付きました。
答えからいうと、javascriptのDateの使い方を間違っていたということなのですが、罠的な感じでしたので書いていきます。
googlechartsを使ってグラフを表現しました。
表記のデータをセットするのですが
[{v:new Date(2018,11,28), f:'11/28(水)'}, 3.1,"black"], [{v:new Date(2018,11,29), f:'11/29(木)'}, 3.6,"black"], [{v:new Date(2018,11,30), f:'11/30(金)'}, 4.5,"#ffa500"], [{v:new Date(2018,12,1), f:'12/01(土)'}, 4.2,"#ffa500"]
という感じでセットしています。
そうすると
という具合に31日が抜けてしまっています。
セットしたデータの最初は表示を日付だけにして、横軸の目盛り名になっています。
日付だけにしていたので気が付かなかったのですが、javascriptのDate関数は月だけ0から始まるということにその時気が付きました。
実際はDate(2018,12,1) → 2019/1/1という意味になります。
なので31日がある10月分で31日の欄が出力されてしまったという事です。
0から始まるという仕様を始めて知ると言う、お粗末なミスでした。