我试图获得过去五个月的数组,但结果很奇怪..... 这几个月我有这个阵列:
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);
}
思想?
答案 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);
}