小编想知道我给一个日期获得当前日期是当前年份的第几周,小编在百度上搜了很多,他们给的代码都不准确,会差1周。所以不适合小编的需求,最后小编还是静下心来,自己写了一个方法。
下面是我的控件:特点一周的最末一天是周六
JS给获取某日期是本年的第几周
代码的核心思想:首先获得当前日期的周六日期,然后按照周六的日期来计算是第几周
该方法避免同一周内有不同年份日期的问题)

源代码

 getWeek (dateTime) {
        let temptTime = dateTime
        //周几
        let weekday = temptTime.getDay() || 7
        //周1+5天=周六
        temptTime.setDate(temptTime.getDate() - weekday + 1 + 5)
        let firstDay = new Date(temptTime.getFullYear(), 0, 1)
        let dayOfWeek = firstDay.getDay()
        let spendDay = 1
        if (dayOfWeek != 0) {
          spendDay = 7 - dayOfWeek + 1
        }
        firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)
        let d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)
        let result = Math.ceil(d / 7)
        return result + 1
      },

dateTime 是date类型 可以给参数new Date()

相关文章: