通过moment.js获取当前周是本月的第几周

1,237 阅读1分钟
 getMonthWeek () {
      //获取当前时间转字符串并用字符串方法split转数组,获取当前时间年、月、日
      let currentTimeArr = moment().month("YYYY-MM-DD").format('YYYY-MM-DD').split('-')
      //当前日期年
      let year = currentTimeArr[0]
      //当前日期月
      let month = currentTimeArr[1]
      //当前日期日
      let day = currentTimeArr[2]
      //获取本月有多少天
      let monthDay = moment(moment().month("YYYY-MM").format('YYYY-MM'), "YYYY-MM").daysInMonth()
      //创建一个新数组,用来接收本月所有周未的日,如果本月最后一天不是周日那也算是周未
      let monthWeekend = []
      //如果本月的最后一天不是周日那也算作一周,push进数组
      if (moment(moment(`${year}-${month}-${monthDay} 00:00:00`).format()).day() != 0) {
        monthWeekend.push(monthDay)
      }
      //循环遍历当前月的每一天
      for (let i = 1; i <= monthDay; i++) {
        //获取每一天是周几
        let week = moment(moment(`${year}-${month}-${i} 00:00:00`).format()).day()
        //如果当前i==今天,就看之前的周末数组里有几个值就是第几周
        if (day == i) {
          var indexWeek = monthWeekend.length
        } else {
          //如果当前i不是今天并且当前i是周末,那就push进周末数组
          if (week == 0) {
            monthWeekend.push(i)
          }
        }
      }
      //返回当前日期是本月的第几周
      console.log(indexWeek)
      return indexWeek
    },