更新日期主题的时间

时间:2018-10-05 08:54:49

标签: javascript angular typescript service

是否可以通过某种方式更新服务中某个主题的时间?

我正在考虑将以下功能抽象到服务中:

date: Date;

setTime(hours: number, mins: number, secs: number): void {
    this.date.setHours(hours);
    this.date.setMinutes(mins);
    this.date.setSeconds(secs);
  }

服务示例

date: Subject<Date>;

  constructor() {
    this.date = new Subject();
  }

  setDate(hrs: number, mins: number, secs: number): Observable<Date> {
    const tempDate = this.date;
    // tempDate.set - Cannot do .setXXX here since it is a Subject and not a Date
    this.date.next
  }

stackblitz

1 个答案:

答案 0 :(得分:1)

您可以只创建一个新日期,该日期将复制当前日期的日期部分,并使用时间参数。然后将tempDate推向主题。

类似这样的东西:

setDate(hrs: number, mins: number, secs: number): Observable<Date> {
   let tempDate = this.date.getValue(); //gets the value of the subject, not the actual subject
   tempDate.setHours(hours);
   tempDate.setMinutes(mins);
   tempDate.setSeconds(secs);
   this.date.next(tempDate);
}