Moment JS 日期错误
Moment JS Wrong Date
let time = moment();
console.log(
time
.year(2021)
.week(34)
.day('monday')
.format('D MMM YYYY'),
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
显示 16 Aug 2021
但它应该是 23 Aug 2021
- 为什么?
如果年份是 2020 年、2019 年等,效果很好,但在 2021 年会失败
没有错。如果您查看 2021
日历,34th
周是 15 - 21 August
。您将其指定为 Monday
。所以它是 16 Aug 2021
。
注意:一周的开始是 Sunday
(ISO 标准)。
这可能是因为您的语言环境。
week
方法使用您的语言环境来确定哪一周是一年中的第一周(这会打乱您的周计算,使您落后一周)。
更多信息,请阅读here
将 .week
切换为 .isoWeek
即可。
const moment = require("moment");
let time = moment();
console.log(
time
.year(2021)
.isoWeek(34)
.day('monday')
.format('D MMM YYYY'),
);
来自此答案的更多信息
let time = moment();
console.log(
time
.year(2021)
.week(34)
.day('monday')
.format('D MMM YYYY'),
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
显示 16 Aug 2021
但它应该是 23 Aug 2021
- 为什么?
如果年份是 2020 年、2019 年等,效果很好,但在 2021 年会失败
没有错。如果您查看 2021
日历,34th
周是 15 - 21 August
。您将其指定为 Monday
。所以它是 16 Aug 2021
。
注意:一周的开始是 Sunday
(ISO 标准)。
这可能是因为您的语言环境。
week
方法使用您的语言环境来确定哪一周是一年中的第一周(这会打乱您的周计算,使您落后一周)。
更多信息,请阅读here
将 .week
切换为 .isoWeek
即可。
const moment = require("moment");
let time = moment();
console.log(
time
.year(2021)
.isoWeek(34)
.day('monday')
.format('D MMM YYYY'),
);
来自此答案的更多信息