javascript - MomentJs 星期一按周数错误
问题描述
我有一个函数可以获取格式为 YYYY-MM-DD 的日期键,例如。2021-03-29(星期一)获取其周数(13),并使用它,获取该周数的星期一,如果是 2021-03-29,它将是同一天,如果是 2021-03-30 它应该是 2021-03-29 等,只要它在同一周(按周数)
我为它创建了一个沙箱。
http://jsfiddle.net/x6sL8k7e/1/
测试代码
const dateKey = "2021-03-29"
const weekNumber = moment(dateKey, 'YYYY-MM-DD').isoWeek() // getting week nr - 13
const date = moment(dateKey, 'YYYY-MM-DD')
.clone()
.week(weekNumber) // want to get monday for week #13
.day('Monday')
console.log('date', date.format('YYYY-MM-DD'))
PS。它与今年的日期(任何日期)完美配合
解决方案
isoWeek
Ciao,我用week
这样的替换解决了你的问题:
const dateKey = "2021-03-29"
const weekNumber = moment(dateKey, 'YYYY-MM-DD').week()
console.log(weekNumber)
const date = moment(dateKey, 'YYYY-MM-DD')
.clone()
.week(weekNumber)
.day('Monday')
console.log('date', date.format('YYYY-MM-DD'))
在这里您的代码已修改。
无论如何,我理解您的问题,并且可能与 2020 年有 53 周而 2021 年有 52 周的事实有关。
所以isoWeek
在第 13 周正确地重新运行,但week
在第 14 周(也许)重新运行,因为它考虑每年由 52 周组成。
推荐阅读
- php - Telegram Bot sendDocument (php on hosted server)
- python - 使用 numpy.where 在大型数组中查找零的问题
- python - 使用 Selenium 和 Python 在 Chrome 上阻止下载
- python - 白天不间断地运行 reqHisorical 数据并更新 csv 文件
- r - 如何在标头中转义冒号-包含在 YAML 标头中
- mesh - 使用 gmsh 4.7.1 在球壳内创建网格
- windows - Powershell - 将文件移动到名称部分匹配的现有文件夹
- angular - 业力单元测试:角度类型安全间谍无法按预期工作
- python - 根据python中的字符串匹配列名?
- npm - Big Sur 11.2 升级后“npm doctor”的权限错误