vue项目中事项显示秒杀倒计时效果-限定开始和结束时间
页面结构
<!-- 限时秒杀 -->
<div class="left">
<p class="txt1">限时秒杀</p>
<p class="txt2">{{ !seckill.title ? '每天零点场 好货秒不停' : seckill.title }}</p>
<div v-if="seckill.length !== 0">
<p class="txt3">
<span>{{h}}</span>
<i>:</i>
<span>{{m}}</span>
<i>:</i>
<span>{{s}}</span>
<b>秒杀</b>
</p>
<img :src="seckill.img" @click="$router.push('/detail/'+seckill.goodsid)" />
</div>
<div class="nul" v-else>
<i class="iconfont icon-rocketspacebus"></i>
<h2>暂无秒杀商品</h2>
</div>
<span v-show="seckill.length == null">
<!-- <i>¥</i> -->
{{seckill.price | formatPrice()}}
</span>
</div>
处理函数过程
// 验证秒杀开始时间是否过期
if (
new Date().getTime() >= parseInt(this.seckill["begintime"]) &&
new Date().getTime() <= parseInt(this.seckill["endtime"])
) {
// 在开始和结束时间范围内
console.log(
new Date().getTime() >= parseInt(this.seckill["begintime"])
);
console.log(
new Date().getTime() <= parseInt(this.seckill["endtime"])
);
// 计算当前时间 - 结束时间
let time = Math.abs(new Date().getTime() - parseInt(this.seckill["endtime"]));
//转成秒
time /= 1000;
// 天
let d = parseInt(time / 86400);
// 时
let h = parseInt((time % 86400) / 3600);
// 分
let m = parseInt((time % 3600) / 60);
// 秒
let s = parseInt(time % 60);
let t = setInterval(() => {
s--;
if (s < 0) {
m--;
s = 59;
}
if (m < 0) {
h--;
m = 59;
}
if (h < 0) {
d--;
h = 23;
}
if (d < 0) {
d = h = m = s = 0;
clearInterval(t); //清除定时器
}
this.h = h < 10 ? "0" + h : h;
this.m = m < 10 ? "0" + m : m;
this.s = s < 10 ? "0" + s : s;
// console.log(d, h, m, s, 111111);
}, 1000);
} else {
console.log('秒杀过期');
this.seckill = [];
}
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634630.html