javascript - JS 时区不是最新的

标签 javascript timezone momentjs

我刚刚创建了一个博客脚本,但是当我添加评论时。
数据库中的时间戳为2014-07-29 18:55:00即使我电脑上的时钟是 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

我正在为上述代码使用以下库:

希望有人能理解发生了什么事。

注意:我住在Europe/Denmark时区 UTC/GMT +2 hours

最佳答案

除了脚本之外,时刻时区还需要数据才能运行。如果您没有加载数据,在 0.1.x 版本中它将使用本地时区 - 就像您刚刚调用 moment() 而没有指定任何 tz 一样。 This has been fixed对于即将发布的 0.2.0 版本,它会给出错误,而不是默默地做错误的事情。

通常,您可以使用 the data builder仅提供您感兴趣的时区的数据。但是,由于上一个版本中数据的格式发生了更改,并且作者尚 future 得及完成所需的更新,因此目前处于离线状态。

与此同时,您可以使用“包含数据”版本之一,可在the main page顶部下载。 - 例如,使用 moment-timezone-2010-2020.js 而不仅仅是 moment-timezone.js

另外,你因为你正在使用 jsTimeZoneDetect - 您应该测试 jstz.define() 返回的值,以确保它确实是您期望的时区。 +2 偏移量是出了名的难以测试。查看 the known issues 中的一些.

关于javascript - JS 时区不是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25023101/

相关文章:

javascript - jQuery 特殊字符编码

java - 从请求中获取zoneID以将请求日期和时间转换为java 8中的UTC格式

javascript - momentjs 中的 UTC 日期

javascript - 时区偏移显示不正确的日期和时间

javascript - 在 Safari 中为复杂对象调用 JSON.stringify 错误

javascript - 单击特定按钮显示导航

javascript - 如何分隔数组中的两个值并使它们成为自己的值

javascript - 关于切换 Highcharts.js 蜘蛛网图和柱形图的问题

java - 如何确保测试始终在同一时区运行

php - 在 PHP 和 MySQL 中使用时区