Javascript IE11 Date.prototype.toLocaleTimeString选项时区名称支持?
希望使用Javascript IE11 Date.prototype.toLocaleTimeString选项时区名称支持?,javascript,internet-explorer,timezone,Javascript,Internet Explorer,Timezone,希望使用Date.prototype.toLocaleTimeString格式化Date对象,如下所示: newdate().toLocaleTimeString('en',{hour:'2位',minute:'2位',second:'2位',timeZoneName:'short'}) 在Chrome和Firefox中,我得到如下结果: Chrome:“美国东部夏令时下午3:18:34” Firefox:“美国东部夏令时下午3:19:17” 然而,在IE中,我得到如下结果: IE11:“03:
Date.prototype.toLocaleTimeString
格式化Date
对象,如下所示:
newdate().toLocaleTimeString('en',{hour:'2位',minute:'2位',second:'2位',timeZoneName:'short'})
在Chrome和Firefox中,我得到如下结果:
Chrome:“美国东部夏令时下午3:18:34”
Firefox:“美国东部夏令时下午3:19:17”
然而,在IE中,我得到如下结果:
IE11:“03:19:54 PM”
注意缺少“EDT”
我看到IE11应该完全支持这个函数的
选项参数。我是否遗漏了什么,或者是否真的没有办法让区域设置格式的字符串包含时区名称。完整的兼容性矩阵是,目前看起来如下所示:
两个红色框表示IE11没有这种支持
就我个人而言,我认为这不太可能。如果你需要支持IE11,你必须通过一个库携带你自己的数据。有一个这样的库,这里有一个关于如何使用它的例子。如果您仍然想在IE 11中使用它,那么您可以尝试参考下面的解决方法
它不是简短的格式
单击按钮以字符串形式显示时间
试试看
函数myFunction(){
var d=新日期();
var rightNow=新日期();
var TZ=String(String(rightNow).split(“”[1]).split(“”[0]);
var n=d.toLocaleTimeString('en',{小时:'2位',分钟:'2位',秒:'2位'});
n+='''''+TZ;
document.getElementById(“demo”).innerHTML=n;
}
谢谢你的建议。不幸的是,我需要以短格式显示时区,所以这不能很好地完成工作。谢谢你的回答,马特。我本应该像你们一样寻找支持的更详细的分类。我倾向于同意,我怀疑IE11在这一点上是否会得到本机支持。感谢您对矩时区的推荐,我来看看。使用矩时区显示日期和时区的时间的区域设置支持如何?不确定您的确切要求,但矩本身具有广泛的区域设置支持。时区缩写源于IANA tzdb,通过矩时区引入。我主要是问当使用矩时区(包括通过“z”的时区)格式化日期时,矩提供的区域设置支持是否包括时区本身的正确翻译?i、 e.英语的EDT到其他语言的EDT?我甚至不确定这些信息是否被翻译了。这种数据没有可靠的来源。时区缩写是一种痛苦——它们大多存在于英语中。存在一些随机的法语缩写,但很少使用。但是,很多时区都没有缩写的概念,所以你只能得到一个数字偏移量。而且,即使它们确实存在,也没有人能够就它们达成一致。示例-夏威夷HST还是HAST?这取决于你问谁。