【发布时间】:2016-03-14 02:14:50
【问题描述】:
有没有办法获得 DST 转换的时间量。例如,有一些奇怪的时区有 30 分钟的转换。我得到这个的另一种方法是获取标准时间和 dst 时间的 utc 偏移量,我可以将两者相减。
如果我这样做 moment.tz('America/Chicago')._z.offsets 我可以访问所有偏移量的大数组。但是我需要知道当前年份的数组索引。
有什么想法吗?
【问题讨论】:
-
你能检查一下这是否有帮助吗? momentjs.com/timezone/docs/#/using-timezones/…
-
您可以为 6 月 1 日创建一个日期,为 12 月 1 日创建另一个日期,并比较时区偏移量。有很多地方根本没有夏令时。
-
稍后我会发布更完整的答案,但 Rob 大部分是对的。创建两个时刻并检查它们之间的
utcOffset差异。请记住,这些年的过渡可能已经发生了变化,并不是所有的过渡都是由于 DST。此外,当前为 DST 转换 30 分钟的唯一区域是Australia/Lord_Howe。其余的都是 1 小时或根本没有。哦,还有南极洲。 ;) -
为什么是 6 月和 12 月 1 日?在美国,这将是 2016 年 3 月 13 日和 11 月 6 日。首先我需要弄清楚 DST 日期是什么。由于每个国家/地区每年都在变化。关于如何确定哪些日期有 DST 更改的任何想法?
-
仅供参考——我可以通过包含额外的 timezone-utils.js 文件和 moment.tz.filterYears(moment.tz('Australia/Adelaide')._z 来缩小 _z 数组的范围,2016 年,2016 年)。这让我想到了一个由三个元素组成的数组。由于数组以 _ 开头,如果它对我来说是安全的,我会使用它,因为它可能意味着是私有的。
标签: javascript momentjs