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