首页 > 解决方案 > 如何判断 Moment Duration 何时会受到夏令时的影响?

问题描述

某些时刻持续时间的实际挂钟持续时间将根据它们添加到的时刻的时区而有所不同。对于其他持续时间,它们应用到的那一刻的时区是无关紧要的。例如:

moment.duration("P1D")时区依赖:

如果我将持续时间添加到某个时刻,那么这将导致该时刻所在时区的一天提前,但提前的小时数可能是 23、24 或 25 小时。

moment.duration("PT24H")不依赖于时区:

如果我将持续时间添加到某个时刻,那么无论该时刻的时区如何,进度都将始终为 24 小时。

有没有一种简单的方法来确定给定的时刻持续时间是否取决于时区?

标签: javascriptmomentjs

解决方案


经过一番思考,我决定了

duration.toISOString().indexOf('PT') === 0

感觉有点 hacky,但如果持续时间只有时间单位,它将不受 DST 的影响。只有天和更高的单位是可变的,具体取决于时区。


推荐阅读