首页 > Web开发 > 详细

js 获取当前月份前12个月

时间:2019-12-10 15:10:07      阅读:511      评论:0      收藏:0      [点我收藏+]

js 获取当前月份前12个月

1、获取当前月份的【后】12个月,获取最近的12个月

var dataArr = [];
var data = new Date();
var year = data.getFullYear();
data.setMonth(data.getMonth() - 1, 1) //获取到当前月份,设置月份
for (var i = 0; i < 12; i++) {
    data.setMonth(data.getMonth() + 1); //每次循环一次 月份值减1
    var m = data.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    dataArr.push(data.getFullYear() + "-" + (m))
}

console.log(dataArr)
//["2019-11", "2019-12", "2020-01", "2020-02", "2020-03", "2020-04", "2020-05", "2020-06", "2020-07", "2020-08", "2020-09", "2020-10"]

2、获取当前月份的【前】12个月,获取最近的12个月

var dataArr = [];
var data = new Date();
var year = data.getFullYear();
data.setMonth(data.getMonth()+1, 1)//获取到当前月份,设置月份
for (var i = 0; i < 12; i++) {
    data.setMonth(data.getMonth() - 1);//每次循环一次 月份值减1
    var m = data.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    dataArr.push(data.getFullYear() + "-" + (m))
}
console.log(dataArr);
// ["2019-11", "2019-10", "2019-09", "2019-08", "2019-07", "2019-06", "2019-05", "2019-04", "2019-03", "2019-02", "2019-01", "2018-12"]


释疑:①JS的Date.setMonth()方法坑【可能存在的问题】:
在业务寻找问题的时候,测试输出date.format(yyyy-MM-dd),看到的值为2019-03-01。从2019-03-01中我发现了原因,是因为2019-02-29此天不存在,故输出2019-03-01,这才导致了输出2019-03的问题。

       正确设置上个月份的的方式应该为date.setMonth(date.getMonth()-1,1);使用setMonth(month,date)来进行修改,而不是使用setMonth(month)方法,避免出现此类问题。

②用 getYear()方法取出时 结果为 119     //(2019-1900=119)

 

js 获取当前月份前12个月

原文:https://www.cnblogs.com/wn798/p/12016749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!