js 生成年月的时间序列

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

转载请注明出处。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值