活动倒计时的做法

此篇用vue项目作为例子

首先再页面加载的时候拿到活动的当前时间、截止时间。

第二步贴代码

<template>
  <div class="countdown">
    <div class="countdown-time">
      <span class="countdown-word">{{countdownDateNow.days|splitTime(0)}}</span>
      <span class="countdown-word">{{countdownDateNow.days|splitTime(1)}}</span>
    </div>
    <div class="countdown-time">
      <span class="countdown-word">{{countdownDateNow.hours|splitTime(0)}}</span>
      <span class="countdown-word">{{countdownDateNow.hours|splitTime(1)}}</span>
    </div>
    <div class="countdown-time">
      <span class="countdown-word">{{countdownDateNow.minutes|splitTime(0)}}</span>
      <span class="countdown-word">{{countdownDateNow.minutes|splitTime(1)}}</span>
    </div>
    <div class="countdown-time">
      <span class="countdown-word">{{countdownDateNow.seconds|splitTime(0)}}</span>
      <span class="countdown-word">{{countdownDateNow.seconds|splitTime(1)}}</span>
    </div>
  </div>
</template>
<script>
const moment = require(‘moment‘);

export default {
  // props: {
  //   countdownDate: {
  //     type: Object,
  //     default() {
  //       return {};
  //     },
  //   },
  // },
  data() {
    return {
      // 本来countdownDate是在props中传递过来的
      countdownDate: {
        currentTime: "2020-02-15 13:39:45",
        days: "00",
        endTime: "2020-02-16 00:00:00",
        hours: 10,
        minutes: 18,
        seconds: 25
      },
      // countdownDateNow: this.countdownDate,
      countdownDateNow: {}, // 本来直接用countdownDateNow: this.countdownDate,  现在是在mounted中获取
    };
  },
  filters: {
    splitTime(str, pos) {
      return String(str).charAt(pos);
    },
  },
  methods: {
    countdown() {
      const activityTime = moment(this.countdownDate.endTime).format(‘YYYY-MM-DD HH:mm:ss‘);
      const currentTime = moment(this.countdownDate.currentTime).format(‘YYYY-MM-DD HH:mm:ss‘);
      let countDown = moment(activityTime).diff(currentTime);
      console.log(countDown, ‘countDown‘);
      const _second = 1000;
      const _minute = _second * 60;
      const _hour = _minute * 60;
      const _day = _hour * 24;
      let timer;
      timer = setInterval(() => {
        countDown -= 1000;
        if (countDown < 0) {
          clearInterval(timer);
          this.countdownDateNow.timeOut = true;
          return;
        }
        // 向下取整
        let days = Math.floor(countDown / _day);
        let hours = Math.floor((countDown % _day) / _hour);
        let minutes = Math.floor((countDown % _hour) / _minute);
        let seconds = Math.floor((countDown % _minute) / _second);
        const addZero = (val) => (val >= 10 ? val : `0${val}` ); // 补0函数
        this.countdownDateNow.days = addZero(days);
        this.countdownDateNow.hours = addZero(hours);
        this.countdownDateNow.minutes = addZero(minutes);
        this.countdownDateNow.seconds = addZero(seconds);
      }, 1000);
    },
  },
  mounted() {
    this.countdownDateNow = this.countdownDate;
    this.countdown();
    console.log(this.countdownDateNow, ‘day‘);
  },
};
</script>
<style lang="less" type="text/less">
.countdown {
  background: url("./../img/top-countdown.png") no-repeat center;
  background-size: contain;
  margin: 0 auto;
  height: 35px;
  width: 310px;
  color: #08e7fc;
  font-size: 12px;
  font-weight: bold;
  text-align: center;
  padding-left: 111px;
  display: flex;
  .countdown-time {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    margin-right: 25px;
    &:nth-child(3) {
      margin-right: 22px;
    }
    &:nth-child(4) {
      margin-right: 0;
    }
  }
  .countdown-word {
    margin-right: 2px;
  }
}
</style>

效果图:

原文地址:https://www.cnblogs.com/ympjsc/p/12312048.html

时间: 2024-08-13 07:11:34

活动倒计时的做法的相关文章

活动倒计时案例

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>活动倒计时代码</title></head> <body> <script type="text/javascript" src="http://libs.useso.com/js/jquery/1.11.1/jquery.min

javascript - 活动倒计时(天、时、分、秒)

计数时: 结束时: 示例: 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv=&qu

活动倒计时 天 时 分 秒

需求:若大于24小时显示天,若小于24小时,显示秒 template <span v-if="day>0"> <span class="fuliTime">{{day}}</span><span class="fuliPoint">天:</span> </span> <span class="fuliTime">{{hour}}</

活动倒计时-天时分秒(兼容ios,定时器的使用以及其注意事项)

倒计时代码(兼容ios) beforeDestroy(){ //页面销毁前清除定时器 clearInterval(this.countTimes) } methods:{ timer(){ let u = navigator.userAgent; if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){ //ios端 let iosPreTime=this.predate.split(/[- :]/) //ios端与安卓端时间格式不同,需做兼容处理 let

JS活动倒计时案例

HTML: <div> <span></span> <span></span> <span></span> <span></span> </div> JS: <script> var spans = document.querySelectorAll('span'); timeLive = +new Date('2020-3-23 00:00:00') //倒计时函数 fun

Swift3.0 GCD定时器的使用,实现倒计时,UIDatePicker的使用, 仿写一个活动倒计时的DEMO

直接看主要代码 //截止日期 let endDate = datePicker.date //开始日期 let startDate = Date() //时间间隔 let timeInterval:TimeInterval = endDate.timeIntervalSince(startDate) if timer == nil { //剩余时间 var timeout = timeInterval if timeout != 0 { //创建全局队列 let queue = Dispatch

js活动倒计时

html代码: <div class="endtime" value="1354365003"></div> <div class="endtime" value="1350748800"></div> <div class="endtime" value="1346487780"></div> <div cl

活动倒计时,还没拿到免费序列号的快来啊!

参与就有免费序列号拿?这等好事你还等什么呢?动动手,填写青少年网络安全意识调查问卷并成功提交,就有PC-cillin2015云安全软件半年版的序列号哦~ 赶快关注趋势科技官方微信(微信名称:趋势科技    微信号:TMtrendmicro)!立刻参与青少年网络安全安全意识调查吧!时间截止到6月3日,不要错过了哦!

创龙周年优惠活动倒计时3天

创龙818周年庆三大优惠最后3天!!!欲购从速!一:OMAP-L138/C6748开发板6.8折,仿真器第二件5折!二:买C66x系列开发板赠送价值超2000元仿真器+C66x书籍!三:单笔订单最高可减1000元!创龙官方淘宝店:https://shop277663195.taobao.com/ 原文地址:https://blog.51cto.com/13771845/2430722