【问题标题】:MomentJS: Finding Daylight savings transition dates for given year and time zoneMomentJS:查找给定年份和时区的夏令时转换日期
【发布时间】:2014-07-03 09:21:11
【问题描述】:

给定:JS 中的日期及其时区(在浏览器中)。

需要什么:需要知道给定日期是否在给定时区的夏令时。

MomentJS 是一个可能使用的 JS 库。是否可以获得给定时区的夏令时?

如果这解决了我的问题,我尝试使用momentJS timezone here,但我如何解释以下输出:

moment.tz.add({
    "zones": {
        "CET": [
            "1 C-Eur CE%sT"
        ],
        "Etc/GMT": [
            "0 - GMT"
        ],
        "Etc/UTC": [
            "0 - UTC"
        ]
    },
    "rules": {
        "C-Eur": [
            "1916 1916 3 30 7 23 0 1 S",
            "1916 1916 9 1 7 1 0 0",
            "1917 1918 3 15 1 2 2 1 S",
            "1917 1918 8 15 1 2 2 0",
            "1940 1940 3 1 7 2 2 1 S",
            "1942 1942 10 2 7 2 2 0",
            "1943 1943 2 29 7 2 2 1 S",
            "1943 1943 9 4 7 2 2 0",
            "1944 1945 3 1 1 2 2 1 S",
            "1944 1944 9 2 7 2 2 0",
            "1945 1945 8 16 7 2 2 0",
            "1977 1980 3 1 0 2 2 1 S",
            "1977 1977 8 0 8 2 2 0",
            "1978 1978 9 1 7 2 2 0",
            "1979 1995 8 0 8 2 2 0",
            "1981 9999 2 0 8 2 2 1 S",
            "1996 9999 9 0 8 2 2 0"
        ]
    },
    "links": {}
});

【问题讨论】:

    标签: javascript timezone dst momentjs


    【解决方案1】:

    你可以这样做:

    var tz = 'Europe/Paris';           // or whatever your time zone is
    var dt = '2014-05-14 12:34:56';    // or whatever date/time you're working with
    moment.tz(dt,tz).isDST()           // returns true in this case
    

    【讨论】:

    • 感谢马特的回复。这解决了我的要求。如果您知道,请单独注意,momentJS 在浏览器(IE 8+、firefox、chrome、safari)中是否始终如一地工作?我在阅读stackoverflow.com/questions/2532729/… 的回答后提出这个问题 - “在某些浏览器中,何时应用夏令时的计算似乎与其他浏览器不同。”
    • 这将始终如一地工作,因为它不依赖 Date 对象来提供时区信息。确保包含您感兴趣的时区的 moment-timezone 数据。moment-timezone 将使用该数据进行确定。
    • 仅供参考 - 1 月/7 月测试已被多次证明。虽然并非所有时区都在同一时间转换,但它们都不会在 1 月 1 日或 7 月 1 日附近转换。
    • 另外 - 我是moment.js 的贡献者,我在moment-timezone 问题上一直落后。我一定会尽快处理好这个,所以isDSTShifted 最终应该会按设计工作。
    • 马特,虽然你的回答解决了我想要的。我想知道是否可以获得给定年份和时区的夏令时转换开始和结束时刻? (这就是我最初的问题。:)
    猜你喜欢
    • 2012-03-28
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2010-10-15
    • 2017-08-28
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多