夏令时期间不起作用的 2 个日期之间的小时差异

Difference in hours between 2 dates not working during daylight savings

本文关键字:之间 小时 时差 日期 不起作用 夏令时      更新时间:2023-09-26

我有 2 个日期的时间,我想看看时间的差异。当隔夜运行夏令时,它会忽略夏令时。这就是我正在尝试的。"加入"的日期为 March 8th 11 PM,"超时"为 March 9th 7 AM 。预计得到 7 小时,但它返回 8 小时

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

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

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);