JS 获取每个月当前为第几周(以自然周计算)

830 阅读1分钟

废话不多说直接上代码 最后更新时间10月31号 :

修改differDay取值

    getMonthWeek() {
      // 现在的时间
      let date = new Date(), // 时间戳
        day = date.getDate(), // 几号
        month = date.getMonth(), // 月份
        year = date.getFullYear(), // 年份
        week = date.getDay(); // 星期几

      // 星期天为0,改为7
      if (week === 0) week = 7;

      // 获取当月一号星期几 和 这个月第一周前还有剩下的天数
      let d = new Date();
      d.setFullYear(year);
      d.setMonth(month);
      d.setDate(1);
      let monthWeek = d.getDay();// 当月1号星期几
      if (monthWeek === 0) monthWeek = 7; // 星期天为0,改为7
      let differDay = 6 - monthWeek; // 相差的天数

      // 今天是第几周
      let getWeek = Math.floor((day - differDay) / 7) + 1;

      // 如果今天还不是第一个自然周
      if (day - week < 0) month--, (getWeek = 5);
      let arr = ["", "1st", "2nd", "3rd", "4th", "last"];

      return `
      ${month+1}月
      ${arr[getWeek]}
      周
      `
    }

萌新求勿喷,有大佬还能简化步骤的可在评论区给出提示