vue中倒计时-时分秒

vue中倒计时

效果图如下:
在这里插入图片描述

首先在data中定义

// 倒计时-时
hour:'',
// 倒计时-分
min:'',
// 倒计时-秒
second:'',
// 倒计时-时间
countSecond:'',
// 结束日期
endDate:'',

然后在methods中写方法

// 倒计时
countTime() {
  let now = new Date().getTime(); // 获取当前时间
  let endDate = new Date(this.endDate); // 设置截止时间
  let end = Number(endDate);
  //let endDate = new Date(this.assistActivityEndTime); // this.assistActivityEndTime需要倒计时的日期
  let leftTime = end - now; // 倒计时时间差
  // 定义变量 d,h,m,s保存倒计时的时间
  if (leftTime >= 0) {
    // 天
    // this.day = Math.floor(leftTime / 1000 / 60 / 60 / 24);
    // let dayh = this.day * 24
    // 时
    let h = Math.floor((leftTime / 1000 / 60 / 60) % 24);
    h = h;
    this.hour = h < 10 ? "0" + h : h;
    // 分
    let m = Math.floor((leftTime / 1000 / 60) % 60);
    this.min = m < 10 ? "0" + m : m;
    // 秒
    let s = Math.floor((leftTime / 1000) % 60);
    this.second = s < 10 ? "0" + s : s;
    this.countSecond = this.hour+':'+this.min+':'+this.second 
  } else {
    this.day = 0;
    this.hour = "00";
    this.min = "00";
    this.second = "00";
    this.countSecond = this.hour+':'+this.min+':'+this.second 
    
  }
  // 等于0的时候不调用
  if (
    Number(this.day) === 0 &&
    Number(this.hour) === 0 &&
    Number(this.min) === 0 &&
    Number(this.second) === 0
  ) {
    this.$route.query.count = 4;
    // 执行飞行任务

    return;
  } else {
    // 递归每秒调用countTime方法,显示动态时间效果,
    setTimeout(this.countTime, 1000);
  }
},

最后就是在你需要的时候调用倒计时方法即可

// 倒计时调用
 this.countTime()
你可以使用Vue.js来创建一个倒计时时分秒组件。下面是一个简单的示例: ```html <template> <div> <div>{{ displayTime }}</div> </div> </template> <script> export default { data() { return { countdownTime: 3600, // 倒计时时间,单位为秒 displayTime: "" // 格式化后的显示时间 }; }, mounted() { this.startCountdown(); }, methods: { startCountdown() { this.updateDisplayTime(); setInterval(() => { if (this.countdownTime > 0) { this.countdownTime--; this.updateDisplayTime(); } }, 1000); }, updateDisplayTime() { const hours = Math.floor(this.countdownTime / 3600); const minutes = Math.floor((this.countdownTime % 3600) / 60); const seconds = this.countdownTime % 60; this.displayTime = `${this.formatTime(hours)}:${this.formatTime( minutes )}:${this.formatTime(seconds)}`; }, formatTime(time) { return time.toString().padStart(2, "0"); } } }; </script> ``` 在这个示例,我们创建了一个Vue组件,用于显示倒计时时分秒。首先,在`data`定义了`countdownTime`(倒计时时间,单位为秒)和`displayTime`(格式化后的显示时间)两个变量。在组件被挂载后,我们调用`startCountdown`方法来开始倒计时。 `startCountdown`方法使用`setInterval`定时器来每秒更新倒计时时间,并调用`updateDisplayTime`方法来更新显示时间。在`updateDisplayTime`方法,我们使用`Math.floor`和模运算来计算小时、分钟和秒数,并调用`formatTime`方法将时间格式化为两位数的字符串。 最后,在模板使用插值绑定将`displayTime`显示出来。 你可以根据需要自定义样式和功能,这只是一个非常简单的示例。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值