html页面多个计时器,vue中在一个页面如何设置多个倒计时

本文介绍了一个JavaScript函数`countDownFun`用于实现倒计时功能,该函数根据当前时间和设定的结束时间计算剩余的天、小时、分钟和秒数。在Vue组件中,`asynccreated`钩子获取数据并启动定时器,每秒更新列表中每个项目的倒计时显示。在`destroyed`钩子中,确保定时器在页面销毁时被正确清除,避免内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function countDownFun(time) {

time--; //时间一秒秒的减

let nowTime = new Date().getTime(); //现在时间

if (nowTime <= time) {

//获取时间差

let timediff = Math.round((time - nowTime) / 1000);

//获取还剩多少天

let day = parseInt(timediff / 3600 / 24);

//获取还剩多少小时

let hour = parseInt((timediff / 3600) % 24);

//获取还剩多少分钟

let minute = parseInt((timediff / 60) % 60);

//获取还剩多少秒

let second = timediff % 60;

return day + "天" + hour + "小时" + minute + "分" + second + "秒";

} else {

return "00天00小时00分00秒";

}

}

export default {

name: "meizhoupintuan",

async created() {

let data = await home_meizhou_api();

this.list = data.data.list;

this.timer();

},

data() {

return {

list: [],

temp: null //倒计时初始

};

},

methods: {

timer() {

//页面多个定时器 //主要逻辑都在这页面更新

let _that = this;

this.temp = setInterval(() => {

this.list.forEach((item, index) => {

item.dayTime = countDownFun(item.endAt);

this.$set(this.list, item.dayTime, countDownFun(item.endAt));

console.log(this.temp, "6");

});

}, 1000);

},

},

destroyed() {

//切记页面销毁需要销毁

clearInterval(this.temp);

console.log(this.temp, "销毁");

}

};

e2693962a8da2cd0b181b4867a9baf86.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值