当前位置: 首页 > 知识库问答 >
问题:

如何使用Momentjs计算日光节约日的小时数

扈韬
2023-03-14

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

或者我如何利用这个时刻。js甚至js来计算是否已达到Spring夏令时,记住DST在2a之后开始。M

我尝试使用的代码是

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

然而,我如何使用它,使它不仅能告诉我它的DST,而且还能检查它是否在凌晨2点以后。

共有1个答案

危阳
2023-03-14

只需计算一天开始和第二天开始之间的时差。

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,因为至少有一个地方的DST偏差为30分钟,而不是正常的1小时(澳大利亚豪勋爵岛)。还有一些地方的转换与DST无关,比如2016年5月委内瑞拉将标准时间从UTC-04:30改回UTC-04:00。

还有,你说:

... 但夏时制在Spring开始的那一天将是25小时。

实际上是秋天多了一个小时。到了Spring,时间将缩短一小时(23小时)。

 类似资料:
  • 我有下面的代码来计算偏移量,这里我在EST时区机器上执行下面的代码,其偏移量为-18000秒,即UTC-5.00 请注意,由于一些限制,我不能使用,这里要提到的限制很长。所以我用下面的逻辑从localtime epoch减去GMT epoch,如下所示,它完美地返回了偏移量。 现在,我想在这里假设DST(日光节约)的情况,偏移量为-14400秒,即UTC-4.00。由于EST时区DST(日光节约)

  • 这是关于Java日历,以及我们今天在多伦多的日光节约变化后遇到的影响。 下面是代码 我知道这段代码没有达到最佳实践,但是我需要在当前版本中维护它。在这里,它使用整数来表示时间部分,然后有一个逻辑来从中提取小时和分钟。 当我遵循逻辑时,小时部分是3。然后,有一个逻辑将此时间添加到值为“Sun Mar 11 00:00:00 EST 2018”的Calendar对象中,并使用下面的语句 理论上,在计算

  • 问题内容: 我正在尝试获取特定时区的当前时间。我尝试了以下代码。 我得到的答案令人惊讶-16:57-错了1个小时tz.getRawOffset()-7000 3600000是-为什么亚利桑那州的夏令时是正确的?如何获得凤凰城或美国任何其他城市的正确挂钟时间? 问题答案: 亚利桑那州处于山区时区,但未遵守DST。如果您将时区指定为“ US / Mountain”,则计算机将应用Mountain时区中

  • 问题 你需要在给出的年份中找到复活节的月份和日期。 解决方案 下面的函数返回数组有两个要素:复活节的月份( 1-12 )和日期。如果没有给出任何参数,给出的结果是当前的一年。这是 在CoffeeScript 的匿名公历算法实现的。 gregorianEaster = (year = (new Date).getFullYear()) -> a = year % 19 b = ~~(year

  • 我需要确定是否在Linux(Redhat)中为给定的UTC偏移启用了日光节约。我得到了UTC 05:30之类的输入。我检查了zdump命令的用法。当与时区名称一起使用时,我们可以检查输出中isdst的值,以确定夏令时的状态。 zdump-v/usr/share/zoneinfo/Asia/Kolkata | grep 2013 如上所述,zdump需要区域名称。它不接受UTC偏移。 我还尝试了lo

  • 我使用下面的代码计算两个日期之间的年、月和天的数目,使用 以上代码的预期输出是(使用此站点并使用google play store中的一个应用程序进行勾选) null 如果需要更多的信息请告诉我。提前道谢。你的努力将会受到赞赏。