以角度显示时间/时钟

时间:2019-01-21 11:32:13

标签: angular rxjs

我正在使用以下方法在我的应用中显示时间?

constructor(private datePipe: DatePipe) {}
ngOnInit() {
    this.getTime();
    this.date = this.datePipe.transform(new Date(), "dd/MM/yyyy");
  }
 getTime() {
    setInterval(() => {
      this.time = this.datePipe.transform(new Date(), "HH:mm:ss");
      this.getTime();
    }, 1000);
  }

此代码可以正常工作,但是一段时间后应用程序崩溃了。 有没有其他方法可以在angular4 / 5/6中显示时间?

3 个答案:

答案 0 :(得分:2)

内部component.ts

time = new Date();

ngOnInit() {
    setInterval(() => {
       this.time = new Date();
    }, 1000);
}

内部component.html

{{ time | date: 'hh:mm:ss a' }}

工作demo

答案 1 :(得分:1)

使用可观察的“ onPush”变更检测的替代方法

Id

答案 2 :(得分:1)

或者,您可以使用可观察对象:

private _time$: Observable<Date> = timer(0, 1000).pipe(
  map(tick => new Date()),
  shareReplay(1)
);

get time() {
  return this._time$;
}

在您的html中:

{{ time | async | date: 'hh:mm:ss a' }}