我正在使用 date-fns 库来构建日历,我需要获取一个月的周数。
let start = startOfMonth(date)
let end = endOfMonth(date)
let firstWeek = getISOWeek(start)
let lastWeek = getISOWeek(end)
let weeks = []
for (let i = firstWeek; i < lastWeek + 1; i++) {
weeks.push(i)
}
return weeks
这适用于大多数月份,除了 12 月份,因为 firstWeek 和 lastWeek 分别是“48”和“1”,所以周是空的。
我知道我可以用更复杂的循环来解决这个问题,以检查每次迭代是否高于或低于前一次,但我想知道是否有更自然/简单的方法可以使用 date-fns(或 es6)来实现这一点。