js 传数字,返回时分秒倒计时

需求

今天写方法的时候用到了倒计时的方法,看起来很简单,但是实现起来还是有些麻烦的,记录一下自己的创作过程;
实现:传入一个时间数字,返回参数,实现倒计时的效果

效果

在这里插入图片描述
在这里插入图片描述

vue部分

<h3><b>剩余时间: <span style="color:red;">{{hour ? hourString + '时' + minuteString + '分' + secondString + '秒' : minuteString + '分' + secondString + '秒'}}</span></b></h3>

data定义部分

data() {
  return {
    form:{},
    hour: '',
    minute: '',
    second: '',
    timer: ''
  }
},

初始化created调用部分、计算属性computed

created() {
 if (this.$route.query.form != '' && this.$route.query.form != null && this.$route.query.form != undefined) {
   this.form = JSON.parse(this.$route.query.form);
   console.log(this.form);
   this.hour = Math.floor((this.form.examinationLength * 60 / 3600) % 24)
   this.minute = Math.floor((this.form.examinationLength * 60 / 60) % 60)
   this.second = Math.floor(this.form.examinationLength * 60 % 60)
   this.countDowm()
 }
},
computed: {
 hourString() {
   return this.formatNum(this.hour)
 },
 minuteString() {
   return this.formatNum(this.minute)
 },
 secondString() {
   return this.formatNum(this.second)
 }
},

method方法部分

methods:{
  //倒计时
  countDowm() {
    var self = this
    clearInterval(this.timer)
    this.timer = setInterval(function () {
      console.log(console.log("hour=>",self.hour));
      console.log(console.log("minute=>",self.minute));
      console.log(console.log("second=>",self.second));
      if (self.hour === 0) {
        console.log("1");
        if (self.minute !== 0 && self.second === 0) {
          self.second = 59
          self.minute -= 1
        } else if (self.minute === 0 && self.second === 0) {
          self.second = 0
          clearInterval(self.timer)
        } else {
          self.second -= 1
        }
      } else {
        console.log("2");
        if (self.minute !== 0 && self.second === 0) {
          self.second = 59
          self.minute -= 1
        } else if (self.minute === 0 && self.second === 0) {
          self.hour -= 1
          self.minute = 59
          self.second = 59
        } else {
          self.second -= 1
        }
      }
    }, 1000)
  },
  formatNum(num) {
    return num < 10 ? '0' + num : '' + num
  },
}

结尾

方法直接复制粘贴就可以用

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值