Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用getTimezoneOffset方法修正时差

使用getTimezoneOffset方法修正时差

作者头像
meteoric
发布于 2018-11-16 07:04:50
发布于 2018-11-16 07:04:50
1.1K0
举报
文章被收录于专栏:游戏杂谈游戏杂谈

遇到件很奇怪的事情,应用内显示了当前服务器的时间,在一定时间内有双倍经验,可是在美国的玩家反映说她显示的是她客户端的时间(非北京时间),我本地的时间与它截图过来显示的时间相差16小时。

究其原因,程序并非直接使用new Date()取的客户端操作系统的时间,而是服务器的时间(Linux事先与某一台时间服务器校对过时间--为北京时间)。而产生问题的根源在于,服务器将它当前时间转成毫秒数后传递给客户端,客户端显示的时候没有进行时差修正。使用getTimezoneOffset()可解决这个问题,因为它返回的是格林威治时间与本地时间之间的时差,而使用new Date()得到的结果,还是相对于本地时间的显示,所以想真正实现客户端与服务器端显示的时间一致,需要做如下调整:

var date:Date = new Date(xx);

var timezoneOffset:Number = date.getTimezoneOffset();

date.setTime(date.getTime() + timezoneOffset * 60 * 1000 + 480 * 60 * 1000);

先使用timezoneOffset()【此方法返回的是分钟】方法获取差值,这个就得到的是格林威治时间,而北京时间相对于它是需要再加上8小时的,也就是 8 * 60 = 480分钟。

这样修正后,再调用格式化方法来显示时间就正常了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-11-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通过 getTimezoneOffset() 方法判断当前时区是否为夏令时
getTimezoneOffset() 方法 方法返回 UTC 时间和本地时间之间的时差,以分钟为单位。
子舒
2022/06/09
1.7K0
isSameDate
使用Date.prototype.toISOString()全等比较传入的日期对象。
公众号@魔术师卡颂
2020/08/26
6680
js 国际化需求 获取当前时区
getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。
我只会写Bug啊
2023/12/25
5710
js处理日期时区问题
在国际化的开发中,会遇到时区问题, 平时用js处理时间,基本上忽略了时区,javascript默认用的是机器本地的时区来处理。如果涉及到时区转换,有以下几种方式进行处理。
程序员小爽
2023/07/12
1.2K0
js处理日期时区问题
了解一下ISO 8601是什么
上周的组内分享,有朋友介绍一个工具包生成的日期是UTC,需要转成北京时,另外还带了Z,很是不解,组长介绍说这是ISO 8601的日期格式标准。
bisal
2021/09/06
7.6K0
了解一下ISO 8601是什么
JavaScript日期处理
​ 当然,Github上提供了好多优秀的日期处理插件(如:Datejs、date-fns、jquery-dateFormat),然而当处理一些简单的日期操作去引用插件,还是挺耗费资源。
奋飛
2019/08/15
4.4K4
Time Zone: GMT,UTC,DST,CST
       相较于两地时间表,显示世界各时区时间和地名的世界时区表(Universal World Time),就显得精密与复杂多,通常世界时区表的表盘上会标示着全球24个时区的城市名称。
阳光岛主
2019/02/19
4.2K0
Time Zone: GMT,UTC,DST,CST
JS 中 cookie 的使用
本文介绍了cookie的基本用法,包括如何创建、读取、设置和删除cookie,以及cookie的作用和安全性。同时,还介绍了如何通过JavaScript来操作cookie。
IT可乐
2018/01/04
6.2K0
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区、跨地域跨时区时间转换场景,甚至当还有GMT时间、UTC时间等一堆概念堆上来的时候,总是心理发虚,招架不住。
YourBatman
2021/01/19
3.4K0
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区、跨地域跨时区时间转换场景,甚至当还有GMT时间、UTC时间等一堆概念堆上来的时候,总是心理发虚,招架不住。
YourBatman
2022/03/08
3.5K0
GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
JSR310新日期API(一)-时区与时间偏移量
最近刚好有新项目使用到JSR-310(JDK8)中引入的新日期API,打算做一下总结。本文编写基于JDK11,部分API可能是JDK9之后新增的。
Throwable
2020/06/23
1.9K0
什么是时区?
1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区。每个时区横跨经度15度,时间正好是1小时。
JMCui
2023/03/02
1.9K0
什么是时区?
PHP 中 Date 函数与实际时间相差8小时的解决方法
PHP 中的 data() 函数显示的时间是格林威治时间,和北京时间正好相差8个小时,其他时间相关的函数,如 strtotime() 也有相同的问题,同样可以通过下面的方法来解决:
Denis
2023/04/15
7510
WordPress评论时间显示为8小时前的解决方法
大早上的心动科技的博主就来搞事情了,评论大早上跑来逛你们网站挖掘学习好东西!然后就在 Boke112 导航的交流群里艾特我,8 小时 BUG!!! 我跑来一看还真的是这样,快了 8 个小时,什么鬼啊?谁搞我服务器了?昨天还是正常的啊,心动大佬你是不是搞我服务器了!!WordPress 的默认时区是 UTC 格林威治时间,我看我后台常规设置中选的就是上海时区,但是就算是将 WordPress 时区调整为上海或 UTC+8 后,前台评论时间显示均还是 UTC 时间,与北京时间仍有 8 小时的时差,而后台评论的时
沈唁
2018/05/24
2.7K0
由浅入深,走进中级工程师都未必知道的 JavaScript 时间处理冷知识
在过去,世界各地都各自订定当地时间,例如我国古代将一昼夜分为十二时辰,每一时辰相当于现代的两个小时。但随着交通和通信的发达,各地交流日益频繁,不同的地方时间给人们造成了许多困扰。于是在1884年的国际经度会议上制定了全球性的标准时,确定以英国伦敦格林威治区这个地方为零度经线的起点(本初子午线),并以地球由西向东每24小时自转一周360°,规定经度每隔15°,时差1小时,而每15°的经线则称为该时区的中央经线。全球被划分为24个时区,其中包含23个整时区及180°经线左右两侧的2个半时区。东经的时间比西经要早,也就是如果格林威治时间是中午12时,则中央经线15°E的时区为下午1时,中央经线30°E时区的时间为下午2时;反之,中央经线15°W的时区时间为上午11时,中央经线30°W时区的时间为上午10时。如果两人同时从格林威治的0°各往东、西方前进,当他们在经线180°时,就会相差24小时,所以经线180°被定为国际换日线,由西向东通过此线时日期要减去一日,反之,若由东向西则增加一日。
wade
2021/07/08
2.2K0
由浅入深,走进中级工程师都未必知道的 JavaScript 时间处理冷知识
玩转 Java 时间 + 面试题
在 JDK 8 之前,Java 语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date 和 java.util.Calendar,但在 JDK 8 的时候为了解决旧时间操作类的一些缺陷,提供了几个新的类,用于操作时间和日期,它们分别是:LocalTime、LocalDateTime、Instant,都位于 java.time 包下。时间的操作在我们日常的开发中经常见到,比如,业务数据都要记录创建时间和修改时间,并要把这些时间格式化之后显示到前端页面,再比如我们需要计算业务数据的时间间隔等,都离不开对时间的操作,那如何正确而优雅地使用时间?这就是我们接下来要讨论的话题。
架构师修炼
2020/07/17
1.1K0
客户端存储技术
为了提升用户的体验感,直接在客户端存储信息的需求也随之增加。无论是实现自动登录,个人偏好,换肤功能等,都能使用客户端存储来实现。本文将介绍Web客户端常见的几种存储方式,将结合实际应用场景进行分析,以及相关代码分享
小丞同学
2021/08/16
1.5K0
gmt时间和cst时间_时区utc是什么意思
全球24个时区的划分 相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟这24个时区是如何产生的?过去世界各地原本各自订定当地时间,但随着交通和电讯的发达,各地交流日益频繁,不同的地方时间,造成许多困扰,于是在西元1884年的国际会议上制定了全球性的标准时,明定以英国伦敦格林威治这个地方为零度经线的起点(亦称为本初子午线),并以地球由西向东每24小时自转一周360°,订定每隔经度15°,时差1小时。而每15°的经线则称为该时区的中央经线,将全球划分为24个时区,其中包含23个整时区及180°经线左右两侧的2个半时区。就全球的时间来看,东经的时间比西经要早,也就是如果格林威治时间是中午12时,则中央经线15°E的时区为下午1时,中央经线30°E时区的时间为下午2时;反之,中央经线15°W的时区时间为上午11时,中央经线30°W时区的时间为上午10时。以台湾为例,台湾位于东经121°,换算后与格林威治就有8小时的时差。如果两人同时从格林威治的0°各往东、西方前进,当他们在经线180°时,就会相差24小时,所以经线180°被定为国际换日线,由西向东通过此线时日期要减去一日,反之,若由东向西则要增加一日。
全栈程序员站长
2022/09/20
2.6K0
国际标准时间哪个时区_北京时间与世界时间的换算
关于时间格式 2016-08-9T10:01:54.123Z 20160809100154.123Z 处理方法
全栈程序员站长
2022/11/01
1.4K0
python3的time模块和datet
在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。
py3study
2020/01/06
4750
推荐阅读
相关推荐
通过 getTimezoneOffset() 方法判断当前时区是否为夏令时
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文