首页 >社区问答列表 >如何遍历出全部的月份

如何遍历出全部的月份

比如说我的是“2017-01”和“2017-05”
我想遍历输出全部的月份,怎样写才能输出
["2017-01","2017-02","2017-03","2017-04","2017-05"]
还有就是存在跨年的情况例如“2017-11”和“2018-03”
怎样输出
["2017-11","2017-12","2018-01","2018-02","2018-03"]

  • 数据分析师
  • 数据分析师    2017-10-01 00:18:142楼

    如何遍历出全部的月份-PHP中文网问答-如何遍历出全部的月份-PHP中文网问答

    围观一下哦,学习一下。

    +0添加回复

  • 回复
  • 阿神
  • 阿神    2017-02-13 13:17:221楼

    这是我的实现方式,仅供参考

    function traverse(start, end) {
        start = start.split('-');
        end = end.split('-');
        var startYear = parseInt(start[0]),
            startMon = parseInt(start[1]),
            endYear = parseInt(end[0]),
            endMon = parseInt(end[1]);
    
        if(startMon<1 || startMon>12){
          throw new Error('初始月份不正确');
        }
        if(endMon<1 || endMon>12){
          throw new Error('终止月份不正确');
        }
    
        var result = [];
        var year, mon;
    
        for (year = startYear; year < endYear;) {
            for(mon = startMon; mon<=12; mon++){
              result.push(year +'-'+ (mon<10?'0'+mon:mon));
              if(mon == 12) year++;
            }
        }
        if(startYear == endYear){
          mon = startMon;
        }else{
          mon = 1;
        }
        for (; mon <= endMon; mon++) {
            result.push(endYear +'-'+ (mon<10?'0'+mon:mon));
        }
    
        return result;
    }


    +0添加回复

  • 回复