javascript-日期差应该为零,但它是18小时

javascript-日期差应该为零,但它是18小时,javascript,datetime,Javascript,Datetime,这件事把我难住了。我想这应该很简单。我正在用Javascript做一些非常简单的日期减法。我减去同样的日期,我想它会给你零个小时,但它会给你18个小时 let inDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)).getTime(); let outDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)')。getTime(); document.getElementById('date').innerHT

这件事把我难住了。我想这应该很简单。我正在用Javascript做一些非常简单的日期减法。我减去同样的日期,我想它会给你零个小时,但它会给你18个小时

let inDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)).getTime();
let outDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)')。getTime();
document.getElementById('date').innerHTML=新日期(outDate-inDate)


这是由于您的
时区造成的。如果在打印之前转换为
GMT字符串
,则时间将正确。(1969年1月1日00:00:00)

你应该看到正确的日期

let inDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)')。getTime()
let outDate=新日期('2019年8月27日星期二00:00:00 GMT-0500(中央夏令时)')。getTime()

console.log(新日期(inDate-outDate).togmString())
谢谢!我想这是非常简单的事情这是个打字错误。它应该是
GMT字符串
而不是
UTC
我的浏览器,在显示的时区中,给出了21:00的时间,如下所示:Wed Dec 31 1969 21:00:00 GMT-0300(乌拉圭标准时间),所以,我在前一天,距离史诗还差三个小时。有趣。谢谢。@Dupocas似乎不推荐使用该函数。ToutString对我来说非常有用@deblocker减去2个相同的日期会生成一个等于纪元日期的零日期:
outDate-inDate
无论您身在何处,都会生成
0
,但是
新日期(0)
会根据您所在的时区进行不同的打印。
 new Date(outDate - inDate).toGMTString()