Почему форматирование данных не работает Angular? - PullRequest
0 голосов
/ 16 октября 2019

Я использую следующий шаблон:

 {{ item.EVPDATA | date: "dd.mm.yyyy HH:mm" }}

Значение item.EVPDATA - это время UNIX 1566473370:

Я получаю отформатированные данные как:

 19.07.1970 07:07 

Почему я получаю неправильные данные?

Ответы [ 4 ]

2 голосов
/ 16 октября 2019

Поскольку ваши данные находятся во времени Unix, поэтому перед передачей их в конвейер Date необходимо преобразовать их в метку даты Date (на * 1000), должен работать приведенный ниже код -

{{ (item.EVPDATA * 1000) | date: "dd.MM.yyyy HH:MM"}}

Рабочий пример Stackblitz

Для более кратких значений трубы для Date вы можете обратиться -

1 голос
/ 16 октября 2019

try: {{item.EVPDATA |дата: "дд.мм.гггг ЧЧ: мм"}}

0 голосов
/ 16 октября 2019

Вы можете использовать пользовательские трубы:

import { Pipe, PipeTransform } from "@angular/core";
@Pipe({
  name: "mypipe"
})
export class MyPipe  implements PipeTransform {
  transform(unix: any): string {
    const time = new Date(unix * 1000)
    return time.toString();
  }
}

{{ item.EVPDATA | mypipe }}

См. образец

0 голосов
/ 16 октября 2019

Вот документы для DatePipe: https://angular.io/api/common/DatePipe

Вы пробовали это:

{{ item.EVPDATA * 1000 | date: 'EEEE, MMMM d, y, h:mm:ss a zzzz' }}
...