【问题标题】:IE11 Date.prototype.toLocaleTimeString options timeZoneName support?IE11 Date.prototype.toLocaleTimeString 选项 timeZoneName 支持?
【发布时间】:2018-10-10 19:23:03
【问题描述】:

希望使用Date.prototype.toLocaleTimeString 格式化Date 对象,如下所示:

new Date().toLocaleTimeString('en', {hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short'})

在 Chrome 和 Firefox 中,我得到如下结果:

铬:"3:18:34 PM EDT"

火狐:"3:19:17 PM EDT"

但是,在 IE 中,我得到如下结果:

IE11:"03:19:54 PM" 注意缺少“EDT”。

我看到here on MDN IE11 应该完全支持此函数的options 参数。我是否遗漏了什么,或者真的没有办法让语言环境格式的字符串包含时区名称。

【问题讨论】:

    标签: javascript internet-explorer timezone


    【解决方案1】:

    完整的兼容性矩阵是here,目前看起来像这样:

    两个红框表示IE11不支持。

    就我个人而言,我认为它可能永远不会。如果您需要支持 IE11,则必须通过库为此提供自己的数据。 Moment-Timezone 就是这样一个库,有一个示例 here 说明如何以这种身份使用它。

    【讨论】:

    • 感谢您的回答,马特。我应该像你一样寻找更详细的支持细分。我倾向于同意,我怀疑 IE11 在这一点上是否会原生支持此功能。感谢Moment-Timezone的推荐,我去看看。
    • 语言环境如何支持使用 Moment-Timezone 显示带有时区的日期时间?
    • 不确定您要问什么,但 moment 本身就有广泛的语言环境支持。时区缩写来自 IANA tzdb,通过 moment-timezone 提取。
    • 我主要是问当使用时刻时区格式化日期时,包括通过“z”的时区,时刻提供的语言环境支持是否包括时区本身的正确翻译?即英语的 EDT 到其他语言的任何内容?我什至不确定这些信息是否被翻译。
    • 没有。此类数据没有可靠来源。时区缩写很痛苦——它们大多以英语存在。存在一些随机的法语缩写,但很少使用。而且,许多时区没有缩写的概念,所以你只会得到一个数字偏移量。此外,即使它们确实存在 - 没有人可以明确地同意它们。示例 - 是夏威夷 HST 还是 HAST?取决于你问谁。
    【解决方案2】:

    如果您仍想在 IE 11 中执行此操作,则可以尝试参考以下解决方法。

    不是短格式。

    <!DOCTYPE html>
    <html>
    <body>
    
    <p>Click the button to display the time as a string.</p>
    
    <button onclick="myFunction()">Try it</button>
    
    <p id="demo"></p>
    
    <script>
    function myFunction() {
        var d = new Date();
        var rightNow = new Date();
        var TZ= String(String(rightNow).split("(")[1]).split(")")[0];
        var n = d.toLocaleTimeString('en', {hour: '2-digit', minute: '2-digit', second: '2-digit'});
    	n += ' ' + TZ;
        document.getElementById("demo").innerHTML = n;
    
    
    
    }
    </script>
    
    </body>
    </html>

    输出:

    此外,您可以尝试根据您的要求修改代码。

    【讨论】:

    • 感谢您的建议。不幸的是,我需要以短格式显示时区,所以这并不能很好地完成这项工作。
    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 2015-02-16
    • 2019-07-02
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多