为什么我的时刻.js不计算时间在不同的时区基于给定的时间戳
Why does my moment.js not calculate time in different timezone based on given timestamp?
我从服务器获得GMT+0(格林威治标准时间)的时间。在此基础上,我想计算并显示芝加哥的时间。我写了一个javascript:
function updateTime() {
var chicago = moment(1443646527).tz("America/Chicago").format('h:mm:ss A');
$('#time').html(chicago + ", ");
};
moment.tz.add('America/Chicago|CST CDT|60 50|01010101010101010101010|1BQU0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0');
updateTime();
setInterval(function () {
updateTime();
}, 1000);
在javascript中给定的时间戳等于:
GMT: Wed, 30 Sep 2015 20:55:27 GMT
那么为什么在输出中我得到的是11:00:46 am而不是现在应该在芝加哥的3:55 PM ?
当您向moment构造函数传递一个普通数字时,它期望以毫秒为单位,自Unix纪元以来。作为一个例子,您给出的值似乎是以秒为单位的。
你可以这样做:
// multiply by 1000
moment(1443646527 * 1000).tz("America/Chicago").format('h:mm:ss A')
或:
// use the unix function
moment.unix(1443646527).tz("America/Chicago").format('h:mm:ss A')
无论使用哪一个,您都将得到预期的答案"3:55:27 PM"
。
相关文章:
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- 时刻.js时区值返回错误的时间戳
- 使用 JavaScript 的客户端日期/时间戳一致(考虑时区)
- 如何将 unix 时间戳转换为 JavaScript 日期对象(考虑时区)
- 如何使用 javascript 在没有时区列的 Postgis 时间戳中插入当前时间戳
- 如何使用客户端时区将数据库时间戳输出为客户端中的日期戳
- 转换时区会产生相同的时间戳
- 没有时区的PostgreSQL字段时间戳 - 如何检查它是否等于今天
- 如何将“字符串”转换为“没有时区的时间戳”
- 从特定时区获取当前时间戳
- 获取UTC时区's在javascript中的时间戳
- 将时间戳转换为日期会在结果中显示不同的时区
- 用javascript将unix日期时间戳转换为特定时区的时间
- 获取特定时区中最后12点的时间戳
- 为什么我的时刻.js不计算时间在不同的时区基于给定的时间戳
- 我应该如何在服务器端存储来自JS的时间戳,以便我可以可靠地使用它转换为其他时区?
- javascript获取系统时区的时间戳,而不是UTC
- 时间戳日期时区问题在dojo
- 如何更改这个jquery插件的时区/时间戳
- 在Node.JS中输出用户所在时区时间戳的最佳方法