倒计时

<template>
  <div class="countDown">
    <div v-if="!isCountDownOver">
      <span class="time">{{ countDownD }}</span>
      <span class="time">{{ countDownHour }}</span>
      <span class="time">{{ countDownMinutes }}</span>
      <span class="time">{{ countDownSeconds }}</span>
    </div>
    <div v-else class="timeOver">{{ LANG.test1.desc271 }}</div>
  </div>
</template>

 

<script>
export default {
  name: "countDown",
  data() {
    return {
      isCountDownOver: false,
      countDownD: "00",
      countDownHour: "00",
      countDownMinutes: "00",
      countDownSeconds: "00",
    };
  },
  mounted() {
    this.timer();
  },
  methods: {
    //  时间格式化
    timeFormat(param) {
      return param < 10 ? "0" + param : param;
    },
    //  倒计时功能
    timer() {
      // new Date() 可自定义为抢购时间
      let failTime = new Date("2021-12-25 00:00:00").getTime() + 1 * 60 * 1000; //到期时间
      let nowTime = new Date().getTime(); // 当前时间
      let leftTime = failTime - nowTime;//剩余时间
      let interval = setInterval(() => {
        let timeObj = {};
        leftTime = leftTime - 1000;
        if (leftTime > 0) {
          let d= parseInt(leftTime / 1000 / 60 / 60 / 24);
          let hour = parseInt((leftTime / 1000 / 60 / 60) % 24);
          let minutes = parseInt((leftTime / 1000 / 60) % 60);
          let seconds = parseInt((leftTime / 1000) % 60);
          timeObj = {
            d: this.timeFormat(d),
            hour: this.timeFormat(hour),
            minutes: this.timeFormat(minutes),
            seconds: this.timeFormat(seconds),
          };
        } else {
          this.isCountDownOver = true;
          clearInterval(interval); // 清除定时器
        }
        this.countDownD=timeObj.d;
        this.countDownHour = timeObj.hour;
        this.countDownMinutes = timeObj.minutes;
        this.countDownSeconds = timeObj.seconds;
      }, 1000);
    },
  },
};
</script>

 

<style lang="less" scoped>
.countDown {
  width:100%;
  font-size: .25rem;
  margin: .1rem auto;
}
.countDown .title {
  font-weight: 700;
  color: #ffffff;
  margin-right: .05rem;
}
.countDown .time {
  background-color: #2d67a3;
  color: #fff;
  margin: 0 .02rem;
  padding: 0 .05rem;
  border-radius: .03rem;
}
.timeOver {
  text-align: center;
  font-weight: 700;
  color: #ffffff;
}
</style>
posted @   koo-  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示