使用echarts时需要动态生成日期序列的横坐标,于是动手写了个生成横坐标的函数。
/*
* 输入两个日期生成时间序列
* 输入格式:201801 (表示2018年1月)
* 如输入201702 201809
* 输出数组 [201702,201703,201704....,201809]
* */
function getDateList(startDateStr, endDateStr) {
var result = [];//结果数组
var startYear = startDateStr.substr(0, 4); //开始时间的年份
var startMonth = startDateStr.substr(4, 2);//开始时间的月份
var endYear = endDateStr.substr(0, 4);//结束时间的年份
var endMonth = endDateStr.substr(4, 2);//结束时间的月份
var startDate = new Date(startYear, startMonth);
var years = endYear - startYear - 1;
var count = 0;//计算相隔月份
if (years >= 0) {
count = years * 12;
count += (12 - parseInt(startMonth));
count += parseInt(endMonth);
}else {
count = parseInt(endMonth)-parseInt(startMonth);
}
for (var i = 0; i <= count; i++) {
var tempYear = startDate.getFullYear().toString();
var tempMonth = startDate.getMonth().toString().length == 1 ? '0' + startDate.getMonth().toString() : startDate.getMonth().toString();
if (tempMonth == '00') {
tempYear = (tempYear - 1).toString();
tempMonth = '12';
}
result.push(tempYear + tempMonth);
startDate.setMonth(startDate.getMonth() + 1);
}
return result;
}
转载请注明出处。