#angularjs #date #datetime #momentjs
#angularjs #Дата #дата и время #momentjs
Вопрос:
Я пытаюсь отформатировать временную метку unix, которая находится в GMT, как время в CET.
Итак, дата в моем json-файле 1404896400 -> Ср, 09 июля 2014 г. 09:00:00 по Гринвичу. Я хотел бы отобразить это в своем приложении как Ср, 09 июля 2014 09:00:00 CET ( 2).
Я не хочу, чтобы браузер компенсировал мой часовой пояс (CET), поэтому дата отображается как 11:00. Я хочу, чтобы оно отображалось в моем браузере как 9.00.
Я использую AngularMoment, который является угловой реализацией Moment.js .
Я пытаюсь выяснить из документации, как я могу это сделать, но я застрял и не могу заставить его работать.
Я попытался установить свой часовой пояс на Europe, установив константу:
.constant('angularMomentConfig', {
preprocess: 'unix', // optional
timezone: 'Europe/Amsterdam' // optional
})
Затем с помощью фильтра amDateFormat в моем шаблоне:
{{symposium.content.first_talk.content.date_and_time | amDateFormat:'h:mm'}}
Но время отображается как 11:00. Как я могу заставить его отображаться как 9:00?
Комментарии:
1. Вы видели часть в readme , начинающуюся с «Не забудьте включить
moment-timezone.js
…2. Вы, конечно, правы — я отстой в чтении. Спасибо. Еще один вопрос: при установке часового пояса на Europe / Amsterdam время теперь отображается как 10.00. Есть идеи, почему он вычитает 1 час вместо 2, как должно?
3. Для какого значения? В настоящее время Амстердам находится на CEST (UTC 2), но зимой он находится на CET (UTC 1). Подробности здесь .
4. Точно — но в настоящее время оно равно CEST 2, но когда я форматирую 1404896400 (9 GMT) с помощью этого формата amDateFormat, результат равен 10:00. Поскольку сейчас летнее время, не следует ли вычесть 2 часа?
Ответ №1:
Из модуля чтения углового момента:
Не забудьте включить
moment-timezone.js
в свой проект, иначе функциональность пользовательского часового пояса будет недоступна. Вам также потребуется включить файл данных часового пояса, который вы можете создать с помощью построителя данных часового пояса …
Вы можете увидеть пример jsfiddle здесь .Я загрузил встроенную форму данных часового Europe/Amsterdam
пояса, и вы можете видеть, что она действительно настраивается на UTC 2 для CEST.