【发布时间】:2018-08-18 20:18:09
【问题描述】:
我有一个函数可以返回两个日期时间之间的剩余时间,目前如果我刷新我会得到当前时间到那个特定日期。目前它只在我刷新时返回正确的剩余时间,我尝试设置创建一个 setinterval 函数,以便我每隔几秒获取一次时间,但它不会每秒运行该函数。
到目前为止我的代码:
import moment from 'moment';
const calc = {
vars: {
interval: null,
releaseDate: null,
currentDate: null
},
elements: {
releaseAt: document.getElementById('release-at'), // 2018-08-31 14:24:00
currentDate: document.getElementById('current-date') // 2018-08-18 17:32:59
},
render () {
moment().format();
this.nextTick();
this.vars.interval = setInterval(this.nextTick(), 1000);
},
nextTick () {
let releaseDate = moment(this.elements.releaseAt.value);
let currentDate = moment(this.elements.currentDate.value);
if (currentDate.isBefore(releaseDate)) {
currentDate.add(1, 'second');
const diff = releaseDate.diff(currentDate);
const diffDuration = moment.duration(diff);
const difference = +releaseDate - +currentDate;
return console.log(`
${diffDuration.months()} months
${diffDuration.days()} days
${diffDuration.hours()} hours
${diffDuration.minutes()} minutes
${diffDuration.seconds()} seconds left!`);
}
console.log('boom! End ticker');
return clearInterval(this.vars.interval);
}
};
calc.render();
电流输出
0 months 12 days 20 hours 51 minutes 0 seconds left!
【问题讨论】:
标签: javascript momentjs setinterval