时区不是当前的
JS Timezones not current
本文关键字:时区 更新时间:2023-09-26
我刚刚创建了一个博客脚本,但是当我添加评论时。
数据库中的时间戳是2014-07-29 18:55:00
,即使我PC上的时钟是2014-07-29 20:55:00
。
所以我想根据时区更改时间。
所以我尝试了这个代码(时间戳是2014-07-29 18:55:00
):
var UTC = moment.tz(timestamp, "UTC");
timestamp = UTC.clone().tz(timezone).format('YYYY/MM/DD H:mm:ss');
注意:window.timezone
使用以下代码设置:
var tz = jstz.determine();
var timezone = tz.name();
我想离开的时间是2014/07/29 20:55:00
,但我得到了这个:2014/07/29 17:53:47
我在上面的代码中使用了以下库:
- https://bitbucket.org/pellepim/jstimezonedetect
- http://momentjs.com/timezone/
- http://momentjs.com/
希望有人能明白这是怎么回事。
注意:我住在Europe/Denmark
,有时区UTC/GMT +2 hours
除了脚本之外,moment-timezone还需要数据才能运行。如果没有加载数据,在0.1版本中。它将使用本地时区-就好像您只是调用moment()
而没有指定任何tz
一样。这个问题已经在即将发布的0.2.0版本中得到修复,这样它就会给出一个错误,而不是默默地做错误的事情。
通常,您可以使用数据构建器只为您感兴趣的时区提供数据。然而,它目前是离线的,因为数据的格式在上一个版本中改变了,作者还没有时间完成所需的更新。
同时,你可以使用一个"包含数据"的版本,可以在主页的顶部下载——例如,使用moment-timezone-2010-2020.js
而不是moment-timezone.js
。
另外,由于您正在使用jsTimeZoneDetect -您应该测试jstz.determine()
返回的值,以确保它确实是您期望的时区。众所周知,+2偏移量很难测试。查看一些已知问题
您可以设置时区
moment().tz("Europe/Denmark").format();
相关文章:
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 高库存时期时间与时区不匹配
- 仅在IE中,javascript中的时区名称不正确
- 带时区的Javascript Datestring转换器
- 获取用户选择的不带时区的日期
- Rails:如何获取当前用户'使用Heroku时的时区
- 时刻时区和时区(_Z)
- 分析特定区域设置(而不是时区!)中的日期字符串
- moment.js在两个时区格式的日期之间存在差异
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 如何模拟浏览器's时区
- JavaScript“new Date()”使用哪个时区
- Javascript-将时区添加到日期倒计时中
- 显示服务器时间,包括时区偏移
- 更改默认时区后,如何在本地时间设置时刻格式
- 使用JavaScript日期的任何时间的时区偏移量
- 时刻时区:UTC 偏移量差异
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- javascript日期时区问题
- 读取本地时区的日期的Javascript