如何在Angular中正确使用datePipe

时间:2019-04-21 14:31:49

标签: angular date pipe

我已经花了几个小时才弄清楚这一点。 我试图将时间戳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" }

所以在这一点上我真的不知道该怎么办。 谢谢你们。

0 个答案:

没有答案