Как правильно использовать datePipe в Angular - PullRequest
0 голосов
/ 21 апреля 2019

Прошло несколько часов, когда я пытаюсь понять это. Я пытаюсь просто конвертировать отметку времени Timestamp(seconds=1555755972, nanoseconds=393000000) в обычную дату дд / мм / гггг.

Я получаю список документов из магазина, затем я пропускаю их через свой компонент:

export class MissionComponent implements OnInit {


  missions: Mission[];
  mission: any = {};

  constructor(
      private missionService: MissionService,

      private datePipe: DatePipe
  ) {}




  ngOnInit() {
    this.missionService.getMissions().subscribe(data => {
      this.missions = data.map(e => {
        return{
          id: e.payload.doc.id,
          ...e.payload.doc.data()
        } as Mission;
      });
    });
}

и затем я показываю несколько файлов в цикле в html:

<tr *ngFor="let mission of missions">
                                            ..
                                            <td>{{mission.dataRitiro.toDate() }}</td>
                                            <td>{{mission.dataConsegna.toDate() }}</td>
...

mission.dataRitiro дает мне Timestamp(seconds=1555755972, nanoseconds=393000000)

Если я конвертирую mission.dataRitiro с .toDate(), я получаю Wed Apr 03 2019 00:00:00 GMT+0200 (Ora legale dell’Europa centrale)

пока здесь все работает, но я хочу получить 03/04/2019, поэтому при поиске в интернете я нашел метод datePipe, мне просто нужно написать mission.dataRitiro.toDate() | date: 'dd/mm/yyyy', но если я пишу его внутри HTML, я просто получить пустое поле и в консоли я получаю эту ошибку

Error: InvalidPipeArgument: 'Missing locale data for the locale "it-IT".' for pipe 'DatePipe'
    at ....

но в моем app.module я импортировал import { NgModule, LOCALE_ID } from '@angular/core'; и вставлен внутри провайдеров { provide: LOCALE_ID, useValue: "it-IT" }

Так что на данный момент я действительно не знаю, что делать. Спасибо, ребята.

...