1. 程式人生 > >獲取當前周和前一週週一和周天,下一週週一和周天

獲取當前周和前一週週一和周天,下一週週一和周天

   需求場景:頁面預設進來拿到本週資料。如下圖要展示週一到周天,點選上一週切換上一週資料,可以一直點選上一週。或者下一週。

獲取本週週一到周天的資料

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)); },