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 = [];
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章