js 生成年月的时间序列

版权声明:转载请请标明出处。 https://blog.csdn.net/AnIllusion/article/details/81317209

使用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;
}

转载请注明出处。

猜你喜欢

转载自blog.csdn.net/AnIllusion/article/details/81317209
今日推荐