猿问

在JavaScript中获取客户端的时区偏移量

在JavaScript中获取客户端的时区偏移量

如何收集访客的时区信息?我需要时区,以及格林尼治时间抵消时间。



莫回无
浏览 1369回答 4
4回答

喵喵时光机

var offset = new Date().getTimezoneOffset();console.log(offset);时区偏移是世界协调时和当地时间之间的差别,以分钟为单位.请注意,这意味着如果本地时区落后于UTC,偏移量是正的,如果它在前面,则为负。例如,如果您的时区为UTC+10(澳大利亚东部标准时间),则返回-600。即使对于给定的区域设置,夏时制也会阻止此值成为常量。Mozilla日期对象引用注意,并非所有的时区都被整个小时所抵消:例如,纽芬兰是UTC-3h30m(将夏时制时间排除在公式之外)。

陪伴而非守候

使用偏移量计算时区是一种错误的方法,您将始终遇到问题。时区和夏令在一年中可能会有几次变化,很难跟上变化。得到系统的IANA时区在JavaScript中,您应该使用console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)截至2019年3月,在全球使用的浏览器中,90%的浏览器都能工作。..是的不在Internet资源管理器.旧兼容性信息ECMA-402/1.0说timeZone如果未提供给构造函数,则可能未定义。但是,未来的草案(3.0)通过更改为系统默认时区来解决这个问题。在这个版本的ECMAScript国际化API中,timeZone属性将保持未定义,如果没有timeZone属性的选项对象中提供了Intl.DateTimeFormat构造器..但是,应用程序不应该依赖于此,因为将来的版本可能会返回一个字符串值来标识主机环境的当前时区。在ECMA-402/3.0中,它仍然处于草案中,改为在ECMAScript 2015国际化API的此版本中,timeZone属性将是默认时区的名称,如果没有timeZone属性的选项对象中提供了Intl.DateTimeFormat构造函数之前的版本将timeZone属性在本例中未定义。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答