js 根据开始时间获取区间所有日期,所有月份,所有年份

人狠话不多,直接操代码,可直接使用

//获取时间区间年份
        function getYearBetween(start,end){
                    var result = [];
                    //使用传入参数的时间
                    var startTime = new Date(start);
                    var endTime = new Date(end);
                    while(endTime - startTime>=0 ) {
                        //获取年份
                        let year = startTime.getFullYear();
                        //加入数组
                        result.push(year);
                        //更新日期
                        startTime.setFullYear(startTime.getFullYear()+1);
                    }
                return result;
           }
        //获取时间区间月份
        function getMonthBetween(start,end){  
                        //初始化数组
                        var result = [];  
                        //切割起始年月
                        var s = start.split("-");  
                        //切割结束年月
                        var e = end.split("-");  
                        //获取时间对象
                        var min = new Date();  
                        var max = new Date();  
                        //设置起始时间
                        min.setFullYear(s[0],s[1]);  
                        //设置结束时间
                        max.setFullYear(e[0],e[1]);  
                        
                        //复制一份起始时间对象
                        var curr = min;  
                        //定义字符串
                        var str = "";
                        //起始时间在结束时间之前
                        while(curr <= max){  
                            //获取此时间的月份
                            var month = curr.getMonth();  
                            //如果月份为0,也就是代表12月份
                            if(month===0){
                                str=(curr.getFullYear()-1)+"-"+12;
                            }else{//正常月份
                                str=curr.getFullYear()+"-"+(month<10?("0"+month):month);
                            }
                            //将此年月加入数组
                            result.push(str);  
                            //更新此时间月份
                            curr.setMonth(month+1);  
                        }  
                        return result;  
                   } 
        //获取时间区间所有日期 
        function getAllDate(start,end){
            let dateArr = []
            let startArr = start.split('-')
            let endArr = end.split('-')
            let db = new Date()
            db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])
            let de = new Date()
            de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])
            let unixDb = db.getTime()
            let unixDe = de.getTime()
            let stamp
            const oneDay = 24 * 60 * 60 * 1000;
            for (stamp = unixDb; stamp <= unixDe;) {
            dateArr.push(format(new Date(parseInt(stamp))))
            stamp = stamp + oneDay
            }
            return dateArr
        }
        function format(time){
            let ymd = ''
            let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
            let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
            ymd += time.getFullYear() + '-' // 获取年份。
            ymd += mouth + '-' // 获取月份。
            ymd += day // 获取日。
            return ymd // 返回日期。
        }

代码可以直接使用,效果如下,分别是日期,月份,年份

 

 

鄙人小网站,欢迎各位大佬点击:www.51wzuan.cn 

posted @ 2023-04-28 14:24  夜钓星云  阅读(74)  评论(0)    收藏  举报  来源