javascript - 如何判断 Moment Duration 何时会受到夏令时的影响?
问题描述
某些时刻持续时间的实际挂钟持续时间将根据它们添加到的时刻的时区而有所不同。对于其他持续时间,它们应用到的那一刻的时区是无关紧要的。例如:
moment.duration("P1D")
时区依赖:
如果我将持续时间添加到某个时刻,那么这将导致该时刻所在时区的一天提前,但提前的小时数可能是 23、24 或 25 小时。
moment.duration("PT24H")
不依赖于时区:
如果我将持续时间添加到某个时刻,那么无论该时刻的时区如何,进度都将始终为 24 小时。
有没有一种简单的方法来确定给定的时刻持续时间是否取决于时区?
解决方案
经过一番思考,我决定了
duration.toISOString().indexOf('PT') === 0
感觉有点 hacky,但如果持续时间只有时间单位,它将不受 DST 的影响。只有天和更高的单位是可变的,具体取决于时区。
推荐阅读
- kubernetes-helm - 在 helm 模板的 {{ define }} 中使用 {{ block }}
- swift - 为什么我没有收到带有连接到 Xcode 调试器的调试版本的 iOS 推送通知?
- java - Android中的Http请求:善用Singleton还是静态类?
- reactjs - 如何用反应处理无限链接
- ruby-on-rails - Rails 5.2 显示方法不需要存在
- c++ - OpenGL:使用几个可移动的灯更新着色
- java - Hibernate 使用注释映射多到一个表
- xamarin - iOS 原生到表单导航
- mysql - SQL 查询 - 员工 ID
- python - 将 DataArray 转换为 numpy 数组