javascript - 如何理解客户端脚本中时区的时钟时间

标签 javascript timezone

我有以下 Javascript 代码行:

var showTime = new Date( 'Oct 15, 2017 19:45:00' ).getTime(); // October 15, 2017 at 7:45 p.m. ET or 4:45 p.m. PT

我目前位于 ET 时区(GMT-5 或美洲/纽约)。所以我设置了showTime变量为 ET。但是,我想要 showTime var 实际上反射(reflect)了早 3 小时的太平洋海岸时间 - 在本例中为下午 4:45。太平洋时间。我希望时间能够在全局范围内得到固定和认可,并且不会根据本地时区进行偏移。

showTime 是吗?变量在世界各地不同的时区受到不同的对待?如果按照 native 的时区来处理,如何将时间锁定为10/15/17,晚上7点45分? ET 普遍吗?

谢谢。

最佳答案

JavaScript Date 对象的 getTime() 方法返回自 UTC 1970 年 1 月 1 日以来的毫秒数。这是通用时间,与当前用户的区域设置无关。

代码中唯一与时区相关的部分是 Date 对象的实例化。

这使用当前用户的时区:

var showTime = new Date( 'Oct 15, 2017 19:45:00' ) // 1508114700000 - I'm in CDT currently.

由于您想要美国太平洋时区的时间,因此您应该将时区信息添加到日期字符串中(10 月 15 日仍然是夏令时,所以我使用 PDT 而不是 PST,即 GMT-7) :

var showTime = new Date( 'Oct 15, 2017 19:45:00 GMT-0700' ) // 1508121900000

该字符串是非常特定于实现的,并且可能会跨不同的浏览器和操作系统。支持 ECMAScript 5 的较新浏览器(非 IE 8)已围绕简化的 ISO 8601 进行标准化(请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#Browser_compatibilityhttps://msdn.microsoft.com/en-us/library/ff743760%28v=vs.94%29.aspx )。该字符串看起来像:

var showTime = new Date( '2017-10-15T19:45:00-07:00' ) // 1508121900000

如果您的项目可以只支持 ECMAScript 5 实现 ( http://kangax.github.io/compat-table/es5/ ),那么 ISO 8601 字符串将是最好使用的版本。

关于javascript - 如何理解客户端脚本中时区的时钟时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46343216/

相关文章:

JavaScript:多时区时钟

javascript - 如何在javascript中循环多维 map

javascript - 如何拆分和添加字符串中的各个值?

php - 当用户处于不同时区时如何处理日期时间的显示?

java - Java 中的时区 ID

java - 在joda中将字符串解析为日期时间

javascript - 如何用 JavaScript 正则表达式替换 HTML 标签中的关键字?

php - 禁用行表中的按钮

javascript - 检测下拉导航是否会离开屏幕并重新定位

Python 时间老化,第 2 部分 : timezones