我使用下面提到的代码来获取客户端时区中的时区名称/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" && /(GMTW*d{4})/.test(now))
TZ = RegExp.$1;
document.write(TZ);
报价MDN:
toTimeString()
方法特别有用,因为符合实现ECMA-262的引擎可以在从Date
对象的toString()
,格式如下依赖实施;简单的字符串切片方法可能不会在多个引擎中产生一致的结果。
我建议您尝试使用.toTimeString()
:
(new Date()).toTimeString().match(/(([^)]+))/)[1]
我相信这会给你想要的。