Формат даты в Angular на основе часового пояса - PullRequest
0 голосов
/ 01 февраля 2019

Я получаю даты от моего API в формате UTC.Мне нужно вывести даты, используя местный часовой пояс пользователя.Каждому пользователю назначается часовой пояс, который я извлекаю из своего API.

Используя следующую документацию, я смог заставить работать все часовые пояса с + (то есть +100, +200 и т. Д.).Однако, когда у меня есть часовой пояс с - (то есть -800).Это не работает.

Работает:

{{element.myDate | date:'d-MMM-yyyy HH:mm' : '+800' }}

Первоначальное значение: 7 января 2019 00: 46

Новое значение: 7-Январь-2019 16: 46

НЕ работает (часовой пояс игнорируется):

{{element.myDate | date:'d-MMM-yyyy HH:mm' : '-800' }}

Первоначальное значение: 7 января-2019 00: 46

Новое значение: 7 января 2019 г. 00: 46

Угловой класс, используемый после вызова API

export class MyClass {
  constructor(
    public myDate: Date,
    public otherData: string
  ) {}
}

1 Ответ

0 голосов
/ 01 февраля 2019

Поскольку в Angular дата считается «локальной», вы можете сначала преобразовать ее в UTC и показать результат в представлении.Приведенный ниже метод преобразования предполагает, что свойство myUtcDate присутствует в классе элементов:

this.myUtcDate = new Date(Date.UTC(
  this.myDate.getFullYear(),
  this.myDate.getMonth(),
  this.myDate.getDate(),
  this.myDate.getHours(),
  this.myDate.getMinutes(),
  this.myDate.getSeconds()
));
{{ element.myUtcDate | date:'d-MMM-yyyy HH:mm' : '-800' }}

См. этот стек для демонстрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...