gpt4 book ai didi

javascript - 为什么我在计算 javascript 时差时得到 +1 小时?

转载 作者:行者123 更新时间:2023-12-02 07:05:01 25 4
gpt4 key购买 nike

我试图创建一个非常简单的时差计算。只是“结束时间 - 开始时间”。不过,我得到了 +1 小时。我怀疑它与我的时区有关,因为我是 GMT+1。

无论如何,这应该不会影响差异,因为开始时间和结束时间都在同一时区。

在此处查看我正在运行的示例代码:

http://jsfiddle.net/kaze72/Rm3f3/

$(document).ready(function() {
var tid1 = (new Date).getTime();

$("#tid").click(function() {
var nu = (new Date).getTime();
var diff = new Date(nu - tid1);
console.log(diff.getUTCHours() + ":" +
diff.getUTCMinutes() + ":" +
diff.getUTCSeconds());
console.log(diff.toLocaleTimeString());
});
})

最佳答案

您必须了解Date 对象代表什么以及它如何存储日期。基本上每个 Date 都是自 1970 年以来的毫秒数的薄包装(所谓的 纪元时间)。通过从一个日期中减去另一个日期,您不会得到一个日期:您只会得到两者之间的毫秒数。

话虽如此,这一行没有多大意义:

var diff = new Date(nu - tid1);

你真正需要的是:

var diffMillis = nu - tid1;

...然后简单地提取秒、分等:

var seconds = Math.floor(diffMillis / 1000);
var secondsPart = seconds % 60;
var minutes = Math.floor(seconds / 60);
var minutesPart = minutes % 60;
var hoursPart = Math.floor(minutes / 60);
//...
console.log(hoursPart + ":" + minutesPart + ":" + secondsPart);

Working fiddle .

关于javascript - 为什么我在计算 javascript 时差时得到 +1 小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893754/

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