2016-04-01 6 views
1

私は数ヶ月のために、この配列を持って、私は最後の5ヶ月間の配列を取得しようとしているが、結果は奇妙です..... :アレイ

var month = []; 
    month[0] = "January"; 
    month[1] = "February"; 
    month[2] = "March"; 
    month[3] = "April"; 
    month[4] = "May"; 
    month[5] = "June"; 
    month[6] = "July"; 
    month[7] = "August"; 
    month[8] = "September"; 
    month[9] = "October"; 
    month[10] = "November"; 
    month[11] = "December"; 

I

今日は(4/1)は動作しますが、昨日は動作しませんでした。 var d = new Date(2016,3,30)で実行すると、結果に3月が2回表示されます。私は先月の陳述をしたが、うまくいかなかった。

var d = new Date(2016, 03, 30); 
    for (var m_month = 0; m_month < 5; m_month++){ 
     //console.log(d); 
     chartLabels[m_month] = month[d.getMonth()]; 
     while (chartLabels[m_month] == month[d.getMonth]){ 
      d.setMonth(d.getMonth()-1); 
     } 
     console.log(d); 
    } 

考えられますか?

答えて

5

2月30日は3月です:)。開始する前に、日にちを1に設定する必要があります。

var chartLabels = []; 
var d = new Date(); 
d.setDate(1); // <---- this 
for (var m_month = 0; m_month < 5; m_month++){ 
    chartLabels[m_month] = month[d.getMonth()]; 
     d.setMonth(d.getMonth()-1); 
} 
+0

これは意味がありますが、意味がありません。ありがとう。それはそれを行います。 – user269964