如何使用Momentjs计算Day节能日的小时数

时间:2016-12-06 20:50:50

标签: javascript momentjs dst days

我想知道如何使用Moment.JS来计算某一天的小时数。 原因是常规的一天将是24小时。但是,夏令时开始的那一天将是25小时。

或者我如何使用moment.js甚至js来计算是否已达到春季的夏令时,请记住DST在凌晨2点后开始。

我尝试使用的代码是

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

但是我怎么能用它,这样它不仅可以告诉我它的DST,还可以检查它是否在凌晨2点之后。

1 个答案:

答案 0 :(得分:3)

只需在一天的开始和第二天的开始之间获得小时数差异。

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.

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

另外,你说:

  

...但是,夏令时开始的那一天将是25小时。

实际上秋天还有一个小时。在春天,它将短短一小时(23小时)。