gpt4 book ai didi

javascript - 在javascript中获取时差

转载 作者:行者123 更新时间:2023-11-28 00:26:09 25 4
gpt4 key购买 nike

我想获取两个日期之间的天数、小时数和分钟数的差异。我尝试使用 1970 年 1 月 1 日的 ms 来执行此操作,如下所示:

var d = new Date()

daydiff = ~~((d.getTime()-(Date.parse(SavedReminders[i][7]))) / 86400000);

hourdiff = ~~((d.getTime() - (Date.parse(SavedReminders[i][7]))) / 3600000);

mindiff = ~~((d.getTime() - (Date.parse(SavedReminders[i][7]))) / 60000);

where SavedReminders[i][7] = 2015-04-06T17:34:00

然而,这给出了一些奇怪的结果,如果我在同一小时(下午 5 点)测试它,那么它似乎可以工作,但是当它变成下午 6 点或 7 点时,我开始得到不正确的结果,就好像它没有考虑时间一样。

例如,当当前时间为“2015-04-06T19:26:00”并且我运行此代码时,它会给出结果:

d.getTime() = 1428344775364

Date.parse(SavedReminders[i][7] = 1428341640000

daydiff = 0

hourdiff = 0

mindiff = 52

最佳答案

getTime() 和 Date.parse 都返回 UTC 时间 1/1/1970 以来的毫秒数,但您并未以 UTC 时间声明两者。因此时区会改变您所比较的内容。

换句话说,如果现在是本地时间下午 3 点和 UTC 时间晚上 7 点,并且您运行该代码,那么当您获得 new Date() 时,您实际上是在说现在是 UTC 时间晚上 7 点,因此当您输入一个字符串来指示它是晚上 7 点,如果没有时区,它也会将其解释为晚上 7 点。最终结果是相差 0 小时,因为原始日期位于不同的时区,但转换为 UTC 后表明时间相同。

希望这是有道理的......处理日期时间值在每种编程语言中都是一场噩梦,在 javascript 中更是如此。如果可能的话,我推荐一个好的 JavaScript 日期库,比如 moment.js。

关于javascript - 在javascript中获取时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29477274/

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