vue实现倒计时的两种方法

方法一:


时间的秒数可以根据自己的需求进行修改

再为大家分享一段代码:vue时分秒倒计时
countTime: function () {

    //获取当前时间
    var date = new Date();
    var now = date.getTime();
    //设置截止时间
    var endDate = new Date("2018-10-22 23:23:23");
    var end = endDate.getTime();
    //时间差
    var leftTime = end - now;
    //定义变量 d,h,m,s保存倒计时的时间
    if (leftTime >= 0) {
                d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
                this.h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
                this.m = Math.floor(leftTime / 1000 / 60 % 60);
                this.s = Math.floor(leftTime / 1000 % 60);
     }
      console.log(this.s);
      //递归每秒调用countTime方法,显示动态时间效果
        setTimeout(this.countTime, 1000);

}

方法二
1首先,是两个div用来显示我们的剩余支付时间

剩余支付时间(超时自动关闭)

{{min}}分钟 {{sec}}秒

2然后,是倒计时函数countdown
//倒计时
countdown () {

  const end = Date.parse(new Date('2020-05-05 03:59:23'))
  const now = Date.parse(new Date())
  const msec = end - now

  console.log(msec)
  if(msec<0) return;

  let day = parseInt(msec / 1000 / 60 / 60 / 24)
  let hr = parseInt(msec / 1000 / 60 / 60 % 24)
  let min = parseInt(msec / 1000 / 60 % 60)
  let sec = parseInt(msec / 1000 % 60)
  this.day = day
  this.hr = hr > 9 ? hr : '0' + hr
  this.min = min > 9 ? min : '0' + min
  this.sec = sec > 9 ? sec : '0' + sec
  const that = this
  if(min>=0 && sec>=0){
    //倒计时结束关闭订单
    if(min==0 && sec==0){

      return
    }
    setTimeout(function () {
      that.countdown()
    }, 1000)
  }
}

3最后,在mounted里事先执行countdown方法
mounted () {
this.countdown()
}

你可能感兴趣的:(前端)