gpt4 book ai didi

javascript - 这个javascript日期函数会失败吗?

转载 作者:行者123 更新时间:2023-11-30 12:37:52 24 4
gpt4 key购买 nike

牢记 DST、Leaps、时区。

这个函数会把事情搞砸吗?它必须采用 unix 纪元 (GMT) 并计算出该纪元的确切日历日,并在当天的凌晨 12:00 返回纪元。

function convertToDayStartTime(epoch) {
var d = new Date(0);
d.setUTCSeconds(epoch);
var dayStart = new Date(d.toDateString()).getTime()/1000;
return dayStart;
}

例如:

expect(convertToDayStartTime(1378000800)).toEqual(1377993600);

编辑:

看起来有点搞砸了。以下测试失败:

expect(convertToDayStartTime(1377993599)).toEqual(1377907200);

我不确定如何修复。

最佳答案

在我看来,它与您的浏览器对 Date 的实现一样正确。然而,我认为你可以简化它:你知道一天有多长 -- 86400 秒。所以只要找到最接近的 86400 的倍数就可以了。你可以这样实现它:

function convertToDayStartTime(epoch) {
return Math.floor(epoch / 86400) * 86400;
}

这为您的示例提供了 1377907200,正如预期的那样。

关于javascript - 这个javascript日期函数会失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494370/

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