架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 772|回复: 0

[JavaScript] js 获取当前浏览器时区信息

[复制链接]
发表于 2023-9-20 19:49:55 | 显示全部楼层 |阅读模式
需求:网站为了提升用户体验,数据要根据当前用户的时区显示相应的时间,通过 js 获取当前浏览器时区信息传递给后端,后端再将处理好的数据展示给用户。(或者前端数据做转换)

JavaScript获得当前客户端的时区

Intl对象是ECMAScript国际化API的一个命名空间,它提供了精确的字符串对比、数字格式化和日期格式化。我们需要使用这个API的DateTimeFormat对象。

具体可以参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat

代码:

QQ截图20230920194206.jpg

可以看到输出:Asia/Shanghai,即我所在时区为上海。

UTC 时区偏移量

为了更好的本地化显示时间,可以获取当前浏览器 UTC 时区偏移量,对 UTC 时间做相应的增减,我们可以通过 Date 对象实例的 getTimezoneOffset 方法获取(注意返回的结果的单位为分):

QQ截图20230920194518.jpg

文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

Chrome 浏览器模拟不同地区,输出偏移量,控制台 DevTools -> 更多工具 -> 传感器(sensor),修改位置,如下图:

QQ截图20230920194857.jpg

new Date()
Wed Sep 20 2023 19:47:47 GMT+0800 (中国标准时间)
new Date().getTimezoneOffset()
-480
new Date()
Wed Sep 20 2023 13:48:12 GMT+0200 (Mitteleuropäische Sommerzeit)
new Date().getTimezoneOffset()
-120
new Date()
Wed Sep 20 2023 08:48:19 GMT-0300 (Horário Padrão de Brasília)
new Date().getTimezoneOffset()
180
(完)





上一篇:EF6 Required 允许空字符串但不允许空的特性
下一篇:ASP.NET Core 程序 Systemd 依赖 Docker 容器
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-28 23:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表