为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

莫回无 2019-06-01 16:12:06
在JavaScript中获取客户端的时区偏移量如何收集访客的时区信息?我需要时区,以及格林尼治时间抵消时间。
查看完整描述

4 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

var offset = new Date().getTimezoneOffset();

console.log(offset);

时区偏移是世界协调时和当地时间之间的差别,以分钟为单位.请注意,这意味着如果本地时区落后于UTC,偏移量是正的,如果它在前面,则为负。例如,如果您的时区为UTC+10(澳大利亚东部标准时间),则返回-600。即使对于给定的区域设置,夏时制也会阻止此值成为常量。

注意,并非所有的时区都被整个小时所抵消:例如,纽芬兰是UTC-3h30m(将夏时制时间排除在公式之外)。


查看完整回答
反对 回复 2019-06-01
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

使用偏移量计算时区是一种错误的方法,您将始终遇到问题。时区和夏令在一年中可能会有几次变化,很难跟上变化。

得到系统的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属性在本例中未定义。


查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 1368 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号