2015-04-09 2 views
0

У меня есть угловой фильтр и всегда показывать неправильное время от json is '2015-04-09T16: 30: 00' проблема в том, чтобы показать время 2015-04-09 12:30 PM 4 часа правильного времени как я могу показать время corect?угловой фильтр дата время формат-er

app.filter('formatDateAndTime', function() { 
    return function (input){ 
     if (moment.utc(input).local().format('MM/DD/YYYY hh:mm ') === 'Invalid date') 
      return ' '; 
     else 
      return moment.utc(input).local().format('MM/DD/YYYY hh:mm '); 
    }; 
}); 
+0

Ваш местный часовой пояс 4 часа отличается от UTC? –

+0

@ DavidBalažic is (UTC-05: 00) Восточное время (США и Канада) –

+0

Я не знаю, почему это отключено? –

ответ

1

moment.utc (х) вызова интерпретирует ввод как время UTC, а затем .local() выводит его в локальной временной зоне, которая 4 часа прочь.

К сожалению, я пропустил часть вопроса о получении того же времени. См Ben Whitney's answer (используйте момент (вход) вместо moment.utc (вход))

+0

ОК, как его решить? –

+0

Решите что? В чем дело? Или цель? Переформатировать строку даты? –

1

Как Давид упоминает вы не хотите использовать UTC.

Использовать момент (x) вместо момента.utc (x).

Так что ваш код будет:

app.filter('formatDateAndTime', function() { 
    return function (input){ 
     if (moment(input).local().format('MM/DD/YYYY hh:mm ') === 'Invalid date') 
     return ' '; 
     else 
      return moment(input).local().format('MM/DD/YYYY hh:mm '); 
    }; 
}); 
Смежные вопросы