自定义周的日期区间获取

637 阅读1分钟

获取当前日期 前五个自定义周(上周四到本周三为一周)的日期区间:

代码如下:

            var that=this,sdate,edate,
                currDate=new Date(),
                day=currDate.getDay();//0-6 周日-周六
            function addDate(date,n){
                return new Date(date.getFullYear(), date.getMonth(), date.getDate()+n);
            };

            function getDayOfWeek (date,g) {
                return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1 - g);
            }

            function formatDate(date){
                var year = date.getFullYear(),
                m=(date.getMonth()+1),
                month = m<10?'0'+m:m,
                d=date.getDate(),
                day = d<10?'0'+d:d;
                return year+'-'+month+'-'+day;
            };

            //计算第一周的日期
            var gap;
            if(day==3){
                edate=currDate
            }else if(day>3){
                gap=day-2;
                edate=getDayOfWeek(currDate,gap)
            }else {
                gap=day+5;
                edate=getDayOfWeek(currDate,gap)
            }
            sdate=addDate(edate,-6);
            that.weekArr.push({s:formatDate(sdate),e:formatDate(edate)})

            //往前循环五周
            for(var i=0;i<4;i++){
                var nedate=addDate(sdate,-1),
                    nsdate=addDate(nedate,-6);
                that.weekArr.push({s:formatDate(nsdate),e:formatDate(nedate)})
                sdate=nsdate;
            }
            console.log(that.weekArr);