两种日期之间的小时数差异在夏令时期间不起作用

时间:2015-03-10 20:41:02

标签: javascript

我有2个时间日期,我希望看到小时数的差异。在夜间过夜夏令时,它忽略了夏令时。这就是我想要的。时间日期为March 8th 11 PM,超时时间为March 9th 7 AM。预计将获得7个小时,但它将返回8

var hours = Math.abs(objTimeIn.valueOf() - objTimeOut.valueOf()) / 36e5;

1 个答案:

答案 0 :(得分:0)

您需要关心日期的当前时区偏移量。 你可以使用这段代码

var d1 = new Date("03-10-2015");
var d2 = new Date("03-08-2015");

// Retrieve timezone offsets
var dst1 = d1.getTimezoneOffset();
var dst2 = d2.getTimezoneOffset();

// get the diff between the two dates
var diff = d1 - d2;

// timezone offset
var add = (dst2 - dst1) * 60 * 1000;

// add the offset
var ms = diff + add;

console.log(ms/36e5);