gpt4 book ai didi

javascript - 如何在 Node js 中找到当前周的星期一?

转载 作者:行者123 更新时间:2023-12-04 14:55:05 25 4
gpt4 key购买 nike

我有以下代码可以根据给定的日期参数获取当前星期一。它在大部分时间都可以正常工作。但是过年就不行了。例如,如果我通过 new Date('2020-01-02T15:33:50Z')作为参数,它返回 2019-12-29T15:33:50.000Z这是不正确的。它应该返回 2019-12-30 .我怎样才能让它适用于跨年案例?

function getMonday(d) {
d = new Date(d);
var day = d.getDay(),
diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
return new Date(d.setDate(diff));
}

最佳答案

我在这方面的想法是,如果出现跨年这样的问题,那么你可以尝试从日期呈现的原始格式开始,即自1970年以来的毫秒数,用这个数字运算求出星期一.例如像这样:let currentDate = new Date();获取当前日期let currentDateMs = currentDate.getTime();以毫秒为单位获取当前日期let dayNumber = (currentDate.getDay() + 6) % 7;在 Date 对象中,一周中的天数倒计时从星期日开始,因此我们将其移动,使其从星期一开始let result = currentDateMs - 86400000 * dayNumber;从当前日期减去一天中的毫秒数(1000 * 3600 * 24 = 86400000)乘以当前天数(0-6),也正因为如此,我们不需要检查是否是星期一,因为这里的星期一数是 0,这将消除不必要的减法let resultDate = new Date(result);console.log(resultDate.toDateString());

关于javascript - 如何在 Node js 中找到当前周的星期一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68218186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com