获取当前周和前一周周一和周天,下一周周一和周天
需求场景:页面默认进来拿到本周数据。如下图要展示周一到周天,点击上一周切换上一周数据,可以一直点击上一周。或者下一周。
获取本周周一到周天的数据
methods: { getWeekTime: function () { let now = new Date(); let nowTime = now.getTime(); let day = now.getDay(); let oneDayLong = 24 * 60 * 60 * 1000; let MondayTime = nowTime - (day - 1) * oneDayLong; let SundayTime = nowTime + (7 - day) * oneDayLong; let monday = new Date(MondayTime); let strDate = monday.getDate() let sunday = new Date(SundayTime); let endDate = sunday.getDate(); let year = now.getFullYear(); let month = now.getMonth() + 1; if (month >= 1 && month <= 9) month = "0" + month; if (strDate >= 0 && strDate <= 9) strDate = "0" + strDate; let seperator1 = "-"; // 周一 this.startTime = year + seperator1 + month + seperator1 + strDate; // 周天 this.endTime = year + seperator1 + month + seperator1 + endDate; }, }
获取上一周的周一到周天
1 lastWeekDate: function (data) { 2 // 获取当前日期 3 let now = new Date(); 4 // 获取当月的第几天 5 let day = now.getDate(); 6 /** 7 * 上个周的今天(获取今天的前data天的日期) 8 * 例如 data = 7; 9 * day = 今天是10号 10 * setDate(10-7)即设置为今天的前7天 11 */ 12 let ss = new Date(now.setDate(day - data)); 13 /** ss是今天的前7天的多少号 14 * ss.getDay()是ss号的周几, 15 * 例如今天是周四 16 * 要计算到上周的周一,(周四距离周一是三天),即ss.getDay()-1 = 4-1 = 3; 17 * days = 3天; 18 */ 19 let days = ss.getDay() - 1; 20 /** 21 * days在这里视为距离周一的时间 22 * 设置为周一的日期 23 */ 24 let start = new Date(ss.setDate(ss.getDate() - days)); 25 let _start = new Date(start); 26 let end = _start.setDate(_start.getDate() + 6); 27 return `${start.getFullYear()}-${start.getMonth() + 1}-${start.getDate()}/${end.getFullYear()}-${end.getMonth() + 1}-${end.getDate()}` 28 },
调用lastWeekDate方法
LastWeek() { this.dataTime += 7; console.log(this.lastWeekDate(this.dataTime)); },