2017-01-17 2 views
0

Я считаю, что эта команда должна преобразовать правильно с UTC в ДКБ, но кажется, что это час отПреобразование из UTC в Central Time ("Америка/Чикаго) с помощью moment.js

moment.utc('07-18-2013 16:10:11', 'MM-DD-YYYY HH:mm').tz('America/Chicago').format("YYYY-MM-DD HH:mm"); 

Это returs 2013-07-18 11:10 когда это должен вернуться 2013-07-18 10:10

Я что-то упустил?

Редактировать: Если я печатаю сокращенный часовой пояс, я получаю CDT вместо CST. Как я могу указать КНТ?

+0

ли вы импортировать 'момент- timezone' с DATAS? – VincenzoC

+0

Наверное, нет, я новичок в моменте, не могли бы вы перенаправить меня в правильном направлении? – ilovelamp

+0

Вы можете прочитать, как использовать момент в броузере в [docs] (http://momentjs.com/timezone/docs/#/use-it/browser/), в основном вам нужно импортировать ['moment-timezone- с-data.js'] (https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data-2010-2020.min.js) после 'момента. js'. – VincenzoC

ответ

2

Ваш код верен, и, как указал VincenzoC в комментариях, в то время действует DST, поэтому вы получаете результат, который вы сделали.

Вы используете America/Chicago, что означает буквально - время в Чикаго. Он является представителем всего Центрального часового пояса в Соединенных Штатах. В США нет мест, где можно использовать Центральное время без летнего времени, поэтому просить об этом было бы бессмысленно/недействительно.

Если вы действительно не означает, США Центральное время, ваши другие варианты будут:

  • Выберите правильный часовой пояс.

    .tz('America/Regina')  // Saskatchewan, Canada  (UTC-6 all year) 
    .tz('America/Tegucigalpa') // Honduras, South America (UTC-6 all year) 
    
  • Используйте фиксированное смещение вместо часового пояса. (Вам не нужно будет в тот момент, часовой пояс надстройку для этого.)

    .utcOffset('-06:00') 
    
+0

Отлично! Теперь я понимаю. Благодаря :) – ilovelamp