2015-04-05 4 views
0

Я использую Angular.js с angular-moment и я пытаюсь отобразить дату в другом часовом поясе:Невозможно изменить часовой пояс с угловым моментом

p(style="font-size: 70%",am-time-ago="thing.date") 

Я в том числе moment.js, а также данные момента времени .js (this file). В моем .html файле:

<script src="bower_components/moment/moment.js"></script> 
    <script src="bower_components/moment-timezone/moment-timezone-with-data.js"></script> 

Я также добавил конфигурацию в Angular.js файла, как он говорит на угловой момент Github страница:

angular.module('myApp') 
    .constant('angularMomentConfig', { timezone: 'America/New_York' }) 

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

+0

Хммм. «Я много пробовал [..], и ничего не работает» обманывает самое ценное: что не так с кодом и что вы знаете, что НЕ является причиной. Помогает в угадывании того, что происходит, когда нет stacktrace. – mico

+0

@mico: Я согласен с тем, что в целом это было бы более полезно, но я понятия не имею, где все может пойти не так. Вот почему я прошу предложения, просто вещи, которые, возможно, я могу проверить. Мой уровень Angular не так велик, и я никогда раньше не использовал moment.js, поэтому я понятия не имею, как все должно сочетаться. Я совершенно уверен, что я следил за документами, но я продолжаю думать, что, может быть, я чего-то не хватает. – cgf

+0

Не могли бы вы сказать, что он делает, а не показывать время, которое вы хотите? – mico

ответ

1

Вы говорите, что используете угловые моменты.js, но не включаете сам свой угловой момент. Js.

Посмотрите инструкции от https://www.npmjs.com/package/angular-momentjs, есть предложение, чтобы использовать беседку и НПМ со следующими командами:

Вы можете скачать угловатые-momentjs по:

  • (предпочтительно) Использование беседке и бега bower install angular-momentjs --save
  • Использование npm и бега npm установка угловых моментов --save

и результат будет:

<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script> 

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> 

<script src="app/bower_components/angular-momentjs/angular-momentjs.js"></script> 
+0

Извините, проблема в том, что я не могу изменить часовой пояс, он отображает действительную строку, хотя говорит «10 минут назад» или аналогичный. – cgf

+0

Не могли бы они относиться к непоследовательной проблематике дневного света, как в http://stackoverflow.com/questions/17559726/moment-js-timezones-and-daylight-savings? DayLightSaving (DST) необходимо обрабатывать отдельно в некоторых случаях с помощью функции isDST(), например, в http://stackoverflow.com/questions/21918095/moment-js-how-to-detect-daylight-savings-time-and-add -one-day – mico

+0

Хм, я предполагаю, что даже если бы это было так, все равно пришлось бы изменить время, показанное с «за 1 час», например, «4 часа назад». Проблема в том, что «расстояние» до этой даты не меняется независимо от того, какой часовой пояс я прикрепляю к нему. – cgf

1

Вот мое решение. Побродил по этому вопросу, пытаясь найти решение. Так вот, если кто-то еще бродит здесь, тоже ищет такой же ответ.

С версии 1.0.0-beta.1 часовой пояс можно установить с помощью amMoment сервис. Просто введите услугу amMoment и позвоните changeTimeZone:

amMoment.changeTimezone('Europe/London'); 
Смежные вопросы