MomentJS:比较不同时区的时间

时间:2014-12-26 19:59:17

标签: node.js momentjs

我有一系列时区,我想知道哪一个是“最早的”,最早的是最早的时区。

例如:

  • 时区X是星期四下午5点
  • 时区Y是星期四晚上7点

X比其中最早。

我在NodeJS中使用momentjsmomentjs-timzone(不是浏览器包)

我正在尝试比较毫秒时间戳,但这给了我两个相同的值:

if (momenttz().tz(timezoneX).format('x') > momenttz().tz(timezoneY).format('x'))

1 个答案:

答案 0 :(得分:1)

在NodeJS语法中,可以通过将时区格式化为偏移值,查找最小组件并返回其时区值来实现:

var moment = require('moment-timezone');

var inputTzArray = ['Pacific/Chatham', 'America/St_Johns', 'Asia/Jerusalem', 'America/New_York', 'America/Los_Angeles'];
var tzOffsets = []
for (var i in inputTzArray) {
   var s = moment.tz(inputTzArray[i]).format('Z'); //format to offset
   tzOffsets[i] = parseFloat(s.replace(':','.')); //parse int offset
}
console.log(tzOffsets);
var minIndex = tzOffsets.indexOf(Math.min.apply(Math, tzOffsets)); //find minimum's index

console.log(inputTzArray[minIndex]); //Output earliest timezone

通过链接中的交互式控制台中运行“node server.js”进行实时演示:http://runnable.com/VJ3M3XdZAVg-EVOP