timeDown(endDateStr) {
if (!endDateStr) return;
var endDate = new Date(endDateStr.replace(/-/g, "/")).getTime();//很重要 兼容部分苹果机
var nowDate = new Date().getTime();
var totalSeconds = parseInt((endDate - nowDate) / 1000); //相差的总秒数
var days = Math.floor(totalSeconds / (60 * 60 * 24)); //天数
var modulo = totalSeconds % (60 * 60 * 24);
var hours = Math.floor(modulo / (60 * 60)); //小时数
modulo = modulo % (60 * 60);
var minutes = Math.floor(modulo / 60); //分钟
var seconds = modulo % 60; //秒
this.timeDownObj = {
days,
hours,
minutes,
seconds,
};
//延迟一秒执行自己
let setTimeout1 = setTimeout(() => {
this.timeDown(this.info.endTime);
}, 1000);
setTimeout1;
if (endDate < nowDate) {
clearTimeout(setTimeout1);
this.timeDownObj = {
days: 0,
hours: 0,
minutes: 0,
seconds: 0,
};
}
},
需要注意一下,当设定的结束时间过了,清除定时器。