首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在date-fns中迭代数周

在date-fns中迭代数周
EN

Stack Overflow用户
提问于 2018-07-07 04:47:29
回答 1查看 577关注 0票数 0

我正在使用date-fns库来构建日历,并且我需要获取一个月的周数。

代码语言:javascript
复制
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)。

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 07:05:21

最好是推迟获取ISO周,并迭代实际日期,而不是处理周索引号。

代码语言:javascript
复制
let startOfCurrent = startOfMonth(date)
let startOfNext = addMonths(startOfCurrent, 1)

let weeks = []

for (let i = startOfCurrent; isBefore(i, startOfNext); i = addWeeks(i, 1)) {
  weeks.push(getISOWeek(i))
}

return weeks
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51217410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档