2014-12-26 4 views
1

У меня есть массив часовых поясов, и я хочу знать, какой из них - «самый ранний», где самое раннее - это самый ранний часовой пояс.MomentJS: Сравнение времени в разных часовых поясах

Например:

  • Timezone Х четверг 5 вечера
  • Timezone Y является четверг 7 вечера

Чем X является самым ранним из них.

Я использую momentjs и momentjs-timzone в NodeJS (не пакет браузера)

Я пытаюсь сравнить миллисекунды метку времени, но это дает мне такое же значение, как для:

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

ответ

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

Смежные вопросы