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



需要从自定义日期时间(过去或将来(运行计时器。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或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);
}

最新更新