仅在IE中,javascript中的时区名称不正确

Incorrect timezone name in javascript only in IE

本文关键字:时区 不正确 javascript IE 仅在      更新时间:2023-09-26

我使用下面提到的代码来获取客户端时区中的时区名称/id。使用下面的代码,我得到了美国客户的EDT,但现在当我在印度时区尝试时,我得到的是UTC,而不是IST

这个问题只发生在IE上,所有其他浏览器都给我正确的值,我如何在IE中获得正确的值IST

var now = new Date().toString();
var TZ = now.indexOf('(') > -1 ?
now.match(/'([^')]+')/)[0].match(/[A-Z]/g).join('') :
now.match(/[A-Z]{3,4}/)[0];
if (TZ == "GMT" && /(GMT'W*'d{4})/.test(now)) 
TZ = RegExp.$1;
document.write(TZ);

报价MDN:

toTimeString()方法特别有用,因为符合实现ECMA-262的引擎可以在从Date对象的toString(),格式如下依赖实施;简单的字符串切片方法可能不会在多个引擎中产生一致的结果。

我建议您尝试使用.toTimeString():

(new Date()).toTimeString().match(/'(([^')]+)')/)[1]

我相信这会给你想要的。