Прошло несколько часов, когда я пытаюсь понять это.
Я пытаюсь просто конвертировать отметку времени 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" }
Так что на данный момент я действительно не знаю, что делать.
Спасибо, ребята.