【发布时间】:2021-06-12 22:30:42
【问题描述】:
所以在我的本地时区(东部标准时间),本地时间增加了 1 小时,这意味着在 3 月 14 日凌晨 02:00 我们跳到了凌晨 03:00。
我的目标是通过比较两个具有相同 HH:MM:s 的 UNIX 时间戳,一个在发生时间更改之前和另一个之后,找到这两者之间发生了时间更改,如果所以它是什么。
我正在使用moment.js,但计算这两个日期相同的日期之间的差异将得到 0 小时差异。
//Sat Mar 13 2021 16:00:00 GMT-0500 (Eastern Standard Time)
const before = moment(1615669200000);
//Sun Mar 14 2021 16:00:00 GMT-0400 (Eastern Daylight Time)
const after = moment(1615752000000)
const diff = before.diff(after, 'hours')
// console.log(diff) will print 0, not 1
【问题讨论】:
-
在美国,时间跳跃发生在凌晨 02:00,而不是凌晨 12:00,尽管我认为这对于这个问题并不重要。
-
您使用的是时间戳还是其他格式?请分享更多详细信息,例如您正在使用的代码(给定的代码不使用时间戳)
-
isDST() 方法能解决问题吗?只需检查这两个时刻是否相同。
-
@AdarshMohan 他预计是 23 小时,因为 DST 更改时缺少一个小时。但 moment.js 会自动调整。
-
如果您要比较两个时间戳,只需检查差异是否为 86400 的倍数。
标签: javascript time momentjs dst