Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我会得到+;在javascript中计算时差时为1小时?_Javascript_Time - Fatal编程技术网

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

为什么我会得到+;在javascript中计算时差时为1小时?,javascript,time,Javascript,Time,我试图创建一个非常简单的时差计算。只是“结束时间-开始时间”。不过我还有1个小时。我怀疑这与我的时区有关,因为我是GMT+1 无论如何,这不应该影响差异,因为开始时间和结束时间都在同一时区 在此处检查我的运行示例代码: 您必须了解Date对象表示什么以及它如何存储日期。基本上,每个日期都是自1970年以来的毫秒数(即所谓的纪元时间)的薄包装。通过从另一个日期中减去一个日期,你不会得到一个日期:你只得到两个日期之间的毫秒数 尽管如此,这句话没有多大意义: var diff = new Date(

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

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

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


您必须了解
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);  
.

考虑使用
Date.now()
而不是
(new Date()).getTime()
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);