[英]JS split() error in IE10 and below
以下功能在Chrome,FF和IE11上正常运行。 但是,我无法在IE 10上使用它。当我尝试拆分返回的字符串时,拆分返回未定义。
这是我的功能:
var now = new Date(), timezoneOffset;
timezoneOffset = now.toString().split('GMT')[1];
timezoneOffset = timezoneOffset.split(' ')[0];
timezoneOffset = timezoneOffset.substr(0, 3) + ':' + timezoneOffset.substr(3, 2);
return timezoneOffset;
因此返回的值是:(根据您所在的位置,它可能会有所不同)
小提琴可以在timezoneOffset = now.toString().split('GMT')[1];
之后发出警报timezoneOffset = now.toString().split('GMT')[1];
查看IE10上的错误
您正在做出一个错误的假设,即now.toString()
包含"GMT"
,让我们看看IE中实际给出的(无论如何对我来说);
"Tue May 6 13:48:08 UTC+0100 2014"
注意不是格林尼治标准时间 ,而是UTC 。
这意味着split_result[1]
是undefined ,所以timezoneOffset
是undefined ,因此是您的错误
Unable to get property 'split' of undefined or null reference
无论如何,这都不是获取时区偏移的最佳方法,因为我们已经提供了一种解决方法
date.getTimezoneOffset(); // offset in minutes i.e. for me it is -60
现在,您可以将该数字转换为所需的格式;
var o = date.getTimezoneOffset();
var x = Math.abs(o),
sign = (x === o ? '-' : '+' ),
m = x % 60,
h = (x - m) / 60;
m = (m < 10 ? '0' : '') + m;
h = (h < 10 ? '0' : '') + h;
return sign + h + ':' + m;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.