倒计时
<template>
<div class="countDown">
<div v-if="!isCountDownOver">
<span class="time">{{ countDownD }}</span>
<span class="time">{{ countDownHour }}</span>
<span class="time">{{ countDownMinutes }}</span>
<span class="time">{{ countDownSeconds }}</span>
</div>
<div v-else class="timeOver">{{ LANG.test1.desc271 }}</div>
</div>
</template>
<script>
export default {
name: "countDown",
data() {
return {
isCountDownOver: false,
countDownD: "00",
countDownHour: "00",
countDownMinutes: "00",
countDownSeconds: "00",
};
},
mounted() {
this.timer();
},
methods: {
// 时间格式化
timeFormat(param) {
return param < 10 ? "0" + param : param;
},
// 倒计时功能
timer() {
// new Date() 可自定义为抢购时间
let failTime = new Date("2021-12-25 00:00:00").getTime() + 1 * 60 * 1000; //到期时间
let nowTime = new Date().getTime(); // 当前时间
let leftTime = failTime - nowTime;//剩余时间
let interval = setInterval(() => {
let timeObj = {};
leftTime = leftTime - 1000;
if (leftTime > 0) {
let d= parseInt(leftTime / 1000 / 60 / 60 / 24);
let hour = parseInt((leftTime / 1000 / 60 / 60) % 24);
let minutes = parseInt((leftTime / 1000 / 60) % 60);
let seconds = parseInt((leftTime / 1000) % 60);
timeObj = {
d: this.timeFormat(d),
hour: this.timeFormat(hour),
minutes: this.timeFormat(minutes),
seconds: this.timeFormat(seconds),
};
} else {
this.isCountDownOver = true;
clearInterval(interval); // 清除定时器
}
this.countDownD=timeObj.d;
this.countDownHour = timeObj.hour;
this.countDownMinutes = timeObj.minutes;
this.countDownSeconds = timeObj.seconds;
}, 1000);
},
},
};
</script>
<style lang="less" scoped>
.countDown {
width:100%;
font-size: .25rem;
margin: .1rem auto;
}
.countDown .title {
font-weight: 700;
color: #ffffff;
margin-right: .05rem;
}
.countDown .time {
background-color: #2d67a3;
color: #fff;
margin: 0 .02rem;
padding: 0 .05rem;
border-radius: .03rem;
}
.timeOver {
text-align: center;
font-weight: 700;
color: #ffffff;
}
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现