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