如何从自定义日期时间 运行 计时器?

How to run timer from custom datetime?

需要 运行 自定义日期时间(过去或未来)的计时器。 Ex: Jun 15 2021 15:45:31 GMT+0530", "Tue Jun 15 2021 15:45:32 GMT+0530"(秒)

startTimer() {
    const dateTime =  new Date('2021-06-15T15:45:30');
    setInterval(() => {
      this.now = dateTime;
      this.startTimer();
    }, 1000);
  }

//定时器不工作,它是静态的。 (Tue Jun 15 2021 15:45:31 GMT+0530)

组件:

{{ now }}

您需要更改 this.now...

的实际值

let now = new Date('2021-06-15T15:45:30');

function startTimer() {
  setInterval(() => {
    now = new Date(now.getTime() + 1000);
    console.log(now)
  }, 1000);
}

startTimer();

以上是一个简单的 vanillaJS 版本。由于您标记了 momentjs,您可能还想看看 add
或者,由于您使用的是 angular,因此您可以使用一些不错的选项来使用 rxjs 来处理计时器 - 例如 interval or timer.

问题是您在使用 setInterval() 启动计时器之前设置了 dateTime 然后在 1 秒后,时间再次设置为同一日期。 你也不应该从 setInterval().

内部调用 this.startTimer();

试试这个:

const now =  new Date('2021-06-15T15:45:30');

startTimer() {
    setInterval(() => {
      this.now.setSeconds(this.now.getSeconds() + 1)
    }, 1000);
}