Nodeでchart.jsなグラフのために日付計算したらハマってしまった
グラフ書いたりする時、期間って切っても切れないものがあります。
今回、特定の日付から一週間の日にちが欲しくて下記ようなロジックを書いてみました。
dt = new Date(‘2017-10-27’);
dt1 = new Date();
for( let i = 0; i < 7; i++ ) {
dt1.setDate( dt.getDate() + i );
vNowYear = dt1.getFullYear();
vNowMonth = ( ‘0’ + dt1.getMonth() ).slice(-2);
vNowDay = ( ‘0’ + dt1.getDate() ).slice(-2);
strYMD = vNowYear + ‘-‘ + vNowMonth + ‘-‘ + vNowDay;
console.log( “cnt:” + i + ” ymd:” + strYMD );
}
期待した出力は
cnt:0 ymd:2017-10-27
cnt:1 ymd:2017-10-28
cnt:2 ymd:2017-10-29
cnt:3 ymd:2017-10-30
cnt:4 ymd:2017-10-31
cnt:5 ymd:2017-11-01
cnt:6 ymd:2017-11-02
ところが出力されたのは
cnt:0 ymd:2017-10-27
cnt:1 ymd:2017-10-28
cnt:2 ymd:2017-10-29
cnt:3 ymd:2017-10-30
cnt:4 ymd:2017-11-01
cnt:5 ymd:2018-00-01
cnt:6 ymd:2018-01-02
あっれ〜な感じ。。
月をまたがない場合は
cnt:0 ymd:2017-10-20
cnt:1 ymd:2017-10-21
cnt:2 ymd:2017-10-22
cnt:3 ymd:2017-10-23
cnt:4 ymd:2017-10-24
cnt:5 ymd:2017-10-25
cnt:6 ymd:2017-10-26
な感じでキチンと出してきてくれます。
なんでしょねぇ〜。。。。。
月をまたぐと変になる???
ってことで調査開始です(^^)
※対処した方法はこちらを参照して下さい。