立即在DST过渡中增加小时

时间:2019-05-29 09:40:21

标签: momentjs dst

我正在尝试使用d3创建一个在每0、6am,正午和6pm有一条垂直网格线(从X轴出来)的图形。我是通过手动计算一下momentjs中的刻度值来实现的。

我可以轻松计算一天的开始时间
 firstPoint = momenttz(startDate).startOf('day')

然后循环添加6个小时。

for (let i = 0; i <= days * 24; i += 6) {
    hourTickValues.push(firstPoint.clone().add(i, 'hours'));
}

当进入或退出夏令时时,我想将行保持在当地时间上午6点,正午和下午6点。这将意味着每年两次网格间距会有所不同,因为从凌晨12点到凌晨6点之间只有5个小时进入DST,而出来时只有7个小时。

Momentjs的docs明确指出,将 hours 添加到某个时间不会调整夏令时,但是会添加 days 。我还发现添加小数天是行不通的,它总是四舍五入为整数。

那么,如何才能根据DST调整时钟每6小时可靠地创建一个(momentjs)日期对象?

1 个答案:

答案 0 :(得分:0)

我通过在创建后每小时手动设置对象来解决此问题。

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Max-Age" value="1728000" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization, Pragma, Cache-Control" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>