根据日期返回对应周包含的7天日期

371 阅读1分钟

根据日期返回对应周包含的7天日期,实际应用场景,制作一周食谱的时候,需要选中日期周对应的7天时间

  • 先下载 dayjs 插件 npm i dayjs --save
 // 获取周7天的日期
    getWeekDays() {
      let oneDayTime = 24 * 60 * 60 * 1000;
      let now = this.currentWeekDay ? this.currentWeekDay : new Date();
      let nowTime = now.getTime();
      // getDay() 方法可返回一周(0~6)的某一天的数字。星期天为 0, 星期一为 1, 以此类推。
      let day = now.getDay();
      // 星期一到星期日
      let day1 = "",
        day2 = "",
        day3 = "",
        day4 = "",
        day5 = "",
        day6 = "",
        day7 = "";
      if (day === 0) {
        // 如果是周日
        day1 = dayjs(nowTime - 6 * oneDayTime).format("YYYY-MM-DD");
        day2 = dayjs(nowTime - 5 * oneDayTime).format("YYYY-MM-DD");
        day3 = dayjs(nowTime - 4 * oneDayTime).format("YYYY-MM-DD");
        day4 = dayjs(nowTime - 3 * oneDayTime).format("YYYY-MM-DD");
        day5 = dayjs(nowTime - 2 * oneDayTime).format("YYYY-MM-DD");
        day6 = dayjs(nowTime - 1 * oneDayTime).format("YYYY-MM-DD");

        day7 = dayjs(nowTime).format("YYYY-MM-DD");
      } else if (day === 1) {
        // 如果是周一
        day1 = dayjs(nowTime).format("YYYY-MM-DD");
        day2 = dayjs(nowTime + 1 * oneDayTime).format("YYYY-MM-DD");
        day3 = dayjs(nowTime + 2 * oneDayTime).format("YYYY-MM-DD");
        day4 = dayjs(nowTime + 3 * oneDayTime).format("YYYY-MM-DD");
        day5 = dayjs(nowTime + 4 * oneDayTime).format("YYYY-MM-DD");
        day6 = dayjs(nowTime + 5 * oneDayTime).format("YYYY-MM-DD");
        day7 = dayjs(nowTime + 6 * oneDayTime).format("YYYY-MM-DD");
      } else {
        day1 = dayjs(nowTime - (day - 1) * oneDayTime).format("YYYY-MM-DD");
        day2 = dayjs(nowTime + (2 - day) * oneDayTime).format("YYYY-MM-DD");
        day3 = dayjs(nowTime + (3 - day) * oneDayTime).format("YYYY-MM-DD");
        day4 = dayjs(nowTime + (4 - day) * oneDayTime).format("YYYY-MM-DD");
        day5 = dayjs(nowTime + (5 - day) * oneDayTime).format("YYYY-MM-DD");
        day6 = dayjs(nowTime + (6 - day) * oneDayTime).format("YYYY-MM-DD");
        day7 = dayjs(nowTime + (7 - day) * oneDayTime).format("YYYY-MM-DD");
      }
      this.days = [day1, day2, day3, day4, day5, day6, day7];
      console.log(this.days, "days");
      return this.days;
    },