我已经花了几个小时才弄清楚这一点。
我试图将时间戳Timestamp(seconds=1555755972, nanoseconds=393000000)
转换为正常日期dd / mm / yyyy。
我从Firestore获取一份文档列表,然后将它们传递到组件中:
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
,因此,在Internet上搜索时,我发现了方法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" }
所以在这一点上我真的不知道该怎么办。 谢谢你们。