JS如何获取最近30天的日期,并存放到数组里

JS如何获取最近30天的日期,并存放到数组里

最近做项目,需要获取到近30天的日期来获取对应的内容,如下图

JS如何获取最近30天的日期,并存放到数组里

写了个demo,加了些拼接判断,拼接成 01-01这种类型,如下代码,代码有点杂乱,反正需求是出来了,如果有什么更简单的,欢迎评论留言。

// 获取月日
let times = new Date();
let Y = times.getFullYear();
let M = times.getMonth() + 1;
let D = times.getDate();
let MD = "";
let dateArr = [];
for (let i = 0; i <= 30-1; i++) {
    if (D - i > 0) {
        var E = M;
        if(E === 0 || E === 1 || E === 2 || E === 3 || E === 4 || E === 5 || E === 6 || E === 7 || E === 8 || E === 9){
            if( E < 10 ){
                E = '0' + E
            }
        }
        var F = D - i;
        if(F === 0 || F === 1 || F === 2 || F === 3 || F === 4 || F === 5 || F === 6 || F === 7 || F === 8 || F === 9){
            if( F < 10 ){
                F = '0' + F
            }
        }
        MD = E + "月" + F + "日";
        dateArr[i] = MD;
    } else {
        M = times.getMonth();
        if (M == 1 || M == 3 || M == 5 || M == 7 || M == 8 || M == 10 || M == 12) {
            if(M === 0 || M === 1 || M === 2 || M === 3 || M === 4 || M === 5 || M === 6 || M === 7 || M === 8 || M === 9){
                if( M < 10 ){
                    M = '0' + M
                }
            }
            var F = D - i + 31;
            if(F === 0 || F === 1 || F === 2 || F === 3 || F === 4 || F === 5 || F === 6 || F === 7 || F === 8 || F === 9){
                if( F < 10 ){
                    F = '0' + F
                }
            }
            MD = M + "月" + F + "日";
        } else if (M == 4 || M == 6 || M == 9 || M == 11) {
            if(M === 0 || M === 1 || M === 2 || M === 3 || M === 4 || M === 5 || M === 6 || M === 7 || M === 8 || M === 9){
                if( M < 10 ){
                    M = '0' + M
                }
            }
            var F = D - i + 30;
            if(F === 0 || F === 1 || F === 2 || F === 3 || F === 4 || F === 5 || F === 6 || F === 7 || F === 8 || F === 9){
                if( F < 10 ){
                    F = '0' + F
                }
            }
            MD = M + "月" + F + "日";
        } else {
            if (((Y % 4) == 0) && ((Y % 100) != 0) || ((Y % 400) == 0)) {   //闰年
                if(M === 0 || M === 1 || M === 2 || M === 3 || M === 4 || M === 5 || M === 6 || M === 7 || M === 8 || M === 9){
                    if( M < 10 ){
                        M = '0' + M
                    }
                }
                var F = D - i + 29;
                if(F === 0 || F === 1 || F === 2 || F === 3 || F === 4 || F === 5 || F === 6 || F === 7 || F === 8 || F === 9){
                    if( F < 10 ){
                        F = '0' + F
                    }
                }
                MD = M + "月" + F + "日";
            } else {
                if(M === 0 || M === 1 || M === 2 || M === 3 || M === 4 || M === 5 || M === 6 || M === 7 || M === 8 || M === 9){
                    if( M < 10 ){
                        M = '0' + M
                    }
                }
                var F = D - i + 28;
                if(F === 0 || F === 1 || F === 2 || F === 3 || F === 4 || F === 5 || F === 6 || F === 7 || F === 8 || F === 9){
                    if( F < 10 ){
                        F = '0' + F
                    }
                }
                MD = M + "月" + F + "日";
            }
        }
        dateArr[i] = MD;
        this.dangqianriqi = dateArr[0]; // 今日日期
    }
}

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据