过去五个月的数组

时间:2016-04-01 14:45:36

标签: javascript

我试图获得过去五个月的数组,但结果很奇怪..... 这几个月我有这个阵列:

    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";

我用它来拉入我的图表:

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

它今天(4/1)有效,但它昨天没有用。如果你使用var d = new Date(2016,3,30)运行它,你将在结果中得到March两次。我上个月尝试了一段时间的声明,但它没有用。

    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);
    }

思想?

1 个答案:

答案 0 :(得分: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);
}