date javascript 时区_JavaScript 获取时区-程序员宅基地

技术标签: date javascript 时区  

在一个大型的项目中,不可避免会出现操作时间的业务,比如时间的格式化,比如时间的加减,我们一般会直接使用moment.js库来做,毕竟稳定可靠,也方便,那当我们系统只是几个简单页面,对时间的操作并不是很大,引入库文件并不是很必须的情况,我们需要时区展示怎么办?是不是可以用浏览器支持的原生方法来实现?

时区

啥是时区?

时区是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的外置(时角)决定时间,这就使得不同经度的地方的时间各有不同,为了统一使用同一个时间,就引入了时区的概念。时区通过设立一个标准时间部分地解决了这个问题。世界各国位于地球的不同位置,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有偏差,这些偏差就是时差。

时区表示法

协调世界时(UTC)是最主要的世界时间标准,其以院子时秒长为基础,在时刻上尽量接近于格林威治标准时间。协调世界时是世界上调调节时钟和时间的主要标准。如果时间是以协调世界时(UTC)表示,则在时间后面加上“Z”,“Z”是协调世界时中0时区的标志。UTC时间也叫祖鲁时间,因为在北约音标字母中用“Zulu”表示“Z”。

UTC偏移量的表示形式为:±[hh]:[mm]、±[hh][mm]或者±[hh]。比如北京时间比协调世界时(UTC)早八小时,那么应当表示为:UTC+8。

JavaScript获得当前客户端的时区

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

获得客户端当前时区:

Intl.DateTimeFormat().resolvedOptions().timeZone

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

我们知道了在哪个时区,但是我们需要同时表示UTC+n的形式,那我们怎么知道当前时区的UTC偏移量呢?

我们可以通过Date对象实例的getTimezoneOffset方法获取(注意返回的结果的单位为分):

new Date().getTimezoneOffset()

可以看到输出的是-480,这样获得到的是0时区的时间差(0时区减去当前所在时区,单位是分钟)。

中国标准时间是以东八区为准,比0时区的时间要早8小时。所以是-480,除以60就是所在时区:然后-480 / 60 = -8,即现在这个时区的偏移量为0 - (-8) = 8,即表示为:UTC+8 ,代码为:

‘UTC+‘ + (0 - new Date().getTimezoneOffset() / 60); //输出:UTC+8

需要注意的是,不管你以何参数实例化一个Date对象,js在本地存储时,都会转化为本地时区,js不会帮你存储实例化该日期时的时区信息。

相比较来说,moment.js是一个很好的时间处理的库,如果有时间操作的业务还是直接使用moment.js库方便一点,当然,只是显示一下时区之类的,可以直接用上面简单处理即可。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35935712/article/details/113561814

智能推荐

重新添加引用_怎么重新添加文件引用-程序员宅基地

文章浏览阅读543次。控件不能加载的时候,可以暂把工程组的只读属性去掉,重新添加部件引用。然后重新从VSSget Last Version(是否除工程文件可根据需要自己尝试*_*!)_怎么重新添加文件引用

[Codeforces #297(Div 2)]简要题解_code29724-程序员宅基地

文章浏览阅读545次。A. Vitaliy and Pie(525A)题目大意给你nn道门,在开第nn道门前必须开第n−1n-1道门,或者换句话说就是所有门必须按照1、2、3......n1、2、3......n这样的顺序依次打开,门与门之间都藏有一个钥匙,第一个门之前也有一把钥匙,每个钥匙和一类门一一对应,小写的是钥匙,大写的是门,不分大小写字母相同的话这个钥匙就和这个门对应起来了。一把钥匙开完一扇门之后就会报废,也可_code29724

AndroidStudio NDK开发最佳入门实践_androidstudio ndk 入门-程序员宅基地

文章浏览阅读574次。AndroidStudio NDK开发最佳入门实践网上一些介绍AndroidStudio NDK入门的教程,感觉都不是很完整和全面,也没有告诉初学AndroidStudio NDK的同学们一些需要注意的地方。网上的方法大多需要使用javah命令,使用本文的方法将不再使用该命令了,是不是方便了很多。 本文所介绍的是在AndroidStudio上搭建最佳的NDK开发环境,给使用NDK的开发人员最大的方_androidstudio ndk 入门

谷歌浏览器怎么下载视频 Google Chrome下载视频方法_外国谷歌视频下载-程序员宅基地

文章浏览阅读7.1k次。核心提示:现在我来教大家谷歌浏览器怎么下载视频 Google Chrome下载视频方法。谷歌浏览器怎么下载视频 Google Chrome下载视频方法 我们经常会在线看一些网页视频,但是网站的视频下载都只支持自己的客户端,如果每家网站的客户端都安装的话那是一件很麻烦的事情,现在我来教大家谷歌浏览器怎么下载视频 Google Chrome下载视频方法。【Google Chrome下载视频方法】启动chrome浏览器,进行谷歌应用商店,如图在左侧的搜索框中搜索Adkill and Media Dow_外国谷歌视频下载

霹雳猿教程网站正式上线-程序员宅基地

文章浏览阅读150次。经过几个月的努力,我的新站终于上线了 网站主要使用ASP.net core开发,前台页面很简单,后台的功能稍微复杂一点。这个网站到时候主要发布一些IT学习教程供别人学习,主要包括HTML,JavaScript,JavaEE,ASP.NET等方面的教程,敬请各位关注,谢谢! 网站里面的数据会在后面的日子里持续更新!猿教程_-CSharp教程-C#简介猿教程_-CSha..._霹雳猿

Python3 网络编程(使用Socket实现TCP、UDP通信)_python3利用socket实现通信-程序员宅基地

文章浏览阅读334次。TCP通信TCP_服务端 1 import socket as s 2 3 tcp = s.socket(s.AF_INET,s.SOCK_STREAM) 4 tcp.bind(('127.0.0.1', 6666)) 5 tcp.listen(5) 6 while True: 7 # 建立客户端连接 8 clientsocket,addr = tcp.accept() 9 print("连接地址: %s" % str(addr))10 m_python3利用socket实现通信

随便推点

JUC源码解析(1)---- ThreadPoolExecutor 实现原理、submit()实现_threadpoolselectcallrate.submit( 实现-程序员宅基地

文章浏览阅读443次。通过ExecutorService.submit()方法提交的任务,可以获取任务执行完的返回值。在实际业务场景中,Future和Callable基本是成对出现的,Callable负责产生结果,Future负责获取结果。1、Callable接口类似于Runnable,只是Runnable没有返回值。2、Callable任务除了返回正常结果之外,如果发生异常,该异常也会被返回,即Future可..._threadpoolselectcallrate.submit( 实现

Java 访问权限控制:public、private、protected-程序员宅基地

文章浏览阅读5.8k次,点赞9次,收藏20次。本篇文章主要介绍 Java 的访问权限控制。

CentOS 7下安装 Dubbo Admin管理控制台_centos7安装dubbo-admin-程序员宅基地

文章浏览阅读1.6k次。安装tomcat,这里版本大家随意,只需要拷贝(这里我是官网下载的apache-tomcat-8.5.29)拷贝进 usr/local 然后解压tar -zxvf apache-tomcat-8.5.29.tar.gz然后重点来了,进入apache-tomcat-8.5.29/webapps,里面有一个ROOT目录,进入,然后删掉里面全部文件然后将(dubbo-admin-..._centos7安装dubbo-admin

Maven pom_pom 讯飞sdk-程序员宅基地

文章浏览阅读1.6k次。4.0.0 t t 1.0 war t /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home 4.0.8.RELEASE 3.2 5.1.1.Final 3.2.8 1.2.2 1.0.11 2.6.9 2.0.4 1.2.1 2.4.2 5.1_pom 讯飞sdk

关于阿里妈妈严禁恶意套取平台补贴通知的解读,如果不懂规则,小心54分_怎么可以套平台补贴-程序员宅基地

文章浏览阅读3.2k次。前几天淘宝联盟官方发布了一则公告:【公告】阿里妈妈严禁恶意套取平台补贴通知内容截图如下:联盟公告内容相对来说,比较模糊,为了维护xxx,严禁xxx,如果违规xxx,将处理xxx,都是很套话的模板,不懂行的人可能听得云里雾里,今天,霍常亮带着大家解读一下这则公告。首先,我们需要了解什么是平台补贴,举几个简单的例子:1、淘宝签到红包2、淘宝特价版定向补贴淘宝签到红包淘宝签到红包的玩法很普遍,去年我还特意写过一个文章,《淘宝签到红包商品直达链接,如何转化为自己的链接?》简单的说,淘宝签到红包就_怎么可以套平台补贴

[layui - xtree]基于layui form模块制作的一款带复选框的tree结构树_layui-xtree-程序员宅基地

文章浏览阅读1.1k次。此版本包含了前两个版本所有的功能,同时修复了一些问题,增加了一些功能,之前的版本可以直接抛弃啦!本次升级改动较多,参数也有所更改,尽量别直接覆盖之前版本,而是当成一个全新的tree插件来对待吧!效果图:功能说明:(详细使用方式在下面的文档中)1、常规tree,无层级限制;2、增加checkbox复选框;3、两种数据绑定方式,json数组/异步数据接口,优化了数据格式;4、节点默认选中状态;5、节点..._layui-xtree

推荐文章

热门文章

相关标签