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 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜钓星云

如果解决了问题/赏点吧/饿死了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值