如何使用Momentjs计算夏令时的小时数

How to use Momentjs to calculate number of hours on Day light savings Day

我想知道如何使用 Moment.JS 来计算给定日期的小时数。 原因是正常的一天是 24 小时。但是夏令时在 Spring 开始的那一天将是 25 小时。

或者我如何使用 moment.js 甚至 js 来计算是否已达到 spring 中的夏令时日期,请记住 DST 在 2a.m 之后开始。

我尝试使用的代码是

时刻([2017, 2, 12]).isDST();

但是我如何使用它,不仅可以告诉我它是否是 DST,还可以检查它是否在 2 a.m.

之后

简单地获取一天开始和第二天开始之间的小时差。

var m = moment([2017, 2, 12]); // your moment object, however you create it.

var a = moment(m).startOf('day');
var b = moment(m).add(1, 'day').startOf('day');

var h = b.diff(a, 'hours'); // 23, 24, 25, etc.

请注意,世界各地的时区不同。有些执行夏令时,有些则不执行。有些人在不同的日期和不同的时间进行。结果甚至有可能得到 23.5 或 24.5,因为至少有一个地方有 30 分钟的夏令时偏差,而不是正常的 1 小时(澳大利亚豪勋爵岛)。还有一些地方的转换与 DST 无关,例如委内瑞拉在 2016 年 5 月将其标准时间从 UTC-04:30 改回 UTC-04:00。

另外,你说:

... But the day that daylight savings time starts in the Spring will be 25hrs.

其实是秋天多了一个小时。在Spring,会少一个小时(23小时)。