我将Momentjs.com与NodeJS结合使用,并尝试获取多个时区的Unix时间戳,但遗憾的是输出不正确。
代码:
var moment = require('moment-timezone');
var berlin = moment.tz('Europe/Berlin').unix();
var angeles = moment.tz('America/Los_Angeles').unix();
var london = moment.tz('Europe/London').unix();
console.log(berlin);
console.log(angeles);
console.log(london);
输出:
1472241731
1472241731
1472241731
3条答案
按热度按时间zbsbpyhn1#
Unix Timestamp“始终”基于UTC。地球上所有地方的时间戳都是一样的。
使用Moment-TimeZone更改
moment
对象的时区只会影响本地时间值,例如与format
函数(和其他函数)一起使用。它不会更改所表示的时刻,因此也不会更改基础时间戳。cotxawn72#
您可以使用
Date.parse
获取时间戳,如下所示enyaitl33#
为了向用户显示不同时区的正确时间,我们可以在Unix UTC时间戳中添加时区偏移
请注意,如果在浏览器中计算时间,则可能需要减去浏览器时区偏移量