vue自定义倒计时组件封装

<template>
  <div class="box">
    {{rest}}
  </div>
</template>
<script>
  export default {
    watch:{
      startDateStr:{
        handler(){
          this.rest = this.formatTotalDateSub(this.calcTotalSecond(this.startDateStr,this.endDateStr))    
        }
      }

    },
    data() {
      return {
        startDateStr: new Date().getTime(),
        endDateStr: new Date('2022-4-7 13:00:00').getTime(),
        rest:''
      }
    },
    created() {
      setInterval(()=>{
        this.startDateStr=new Date().getTime()
      },100)
    },
    methods: {
      calcTotalSecond(startDateStr, endDateStr) {
        let date1 = new Date(startDateStr); // 开始时间
        let date2 = new Date(endDateStr); // 结束时间
        let timeSub = date2.getTime() - date1.getTime(); // 时间差毫秒
        return timeSub / 1000;
      },

      formatTotalDateSub(secondSub) {
        let days = Math.floor(secondSub / (24 * 3600)); // 计算出小时数
        let leave1 = secondSub % (24 * 3600); // 计算天数后剩余的毫秒数
        let hours = Math.floor(leave1 / 3600); // 计算相差分钟数
        let leave2 = leave1 % (3600); // 计算小时数后剩余的毫秒数
        let minutes = Math.floor(leave2 / 60); // 计算相差秒数
        let leave3 = leave2 % 60; // 计算分钟数后剩余的毫秒数
        let seconds = Math.round(leave3);
        return days + " 天 " + hours + " 时 " + minutes + " 分 " + seconds + ' 秒';
      }
    }
  }
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值