• 倒计时函数(单个和多条)


    1、单个的时候

    //倒计时
    function countTime(endtime) {
       var countDown = ''
       //获取当前时间
       var date = new Date();
       var now = date.getTime();
       //设置截止时间
       var endDate = new Date(endtime);
       endDate = endDate.getFullYear() > 0 ? endDate : new Date(Date.parse(endtime.replace(/-/g, "/")));
       //var endDate = new Date(time);
       var end = endDate.getTime();
    
       //时间差
       var leftTime = end - now;
       //定义变量 d,h,m,s保存倒计时的时间
       var d, h, m, s;
       if (leftTime >= 0) {
          d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
          d = addZero(d);
          h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
          h = addZero(h);
          m = Math.floor(leftTime / 1000 / 60 % 60);
          m = addZero(m);
          s = Math.floor(leftTime / 1000 % 60);
          s = addZero(s);
          //setTimeout(countTime,1000);
          //d<1?(countDown=h+':'+m+':'+s):(countDown=d+':'+h+':'+m+':'+s);
          countDown = d + ':' + h + ':' + m + ':' + s;
       } else {
         //结束时
          countDown = '00:00:00:00';
      
    
       }
       return countDown;
    };
    
    //补零
    function addZero(str) {
       if (str.toString()
          .length < 2) {
          str = '0' + str;
       }
       return str;
    };
    
    
    调用:
    getCountDown() {
       var that = this;
       that.countDown = countTime(EndTime);
       var singalTime = setInterval(function () {
          that.countDown = countTime(EndTime)
       }, 1000);
       if(that.countDown=='00:00:00:00'){
          clearInterval(singalTime)
       }
    },

    2、多条列表同时倒计时

    var Alarm = function (endtime, countFunc, endFunc) {
       var date = new Date();
       var startime = date.getTime();
       var endDate = new Date(endtime);
       endDate = endDate.getFullYear() > 0 ? endDate : new Date(Date.parse(endtime.replace(/-/g, "/")));
       endtime = endDate.getTime();
       this.time = Math.floor((endtime - startime) / 1000); //时间
       this.countFunc = countFunc; //计时函数
       this.endFunc = endFunc; //结束函数
       this.flag = 't' + Date.parse(new Date());
    };
    Alarm.prototype.start = function () {
       var self = this;
       self.flag = setInterval(function () {
          if (self.time < 0) {
             clearInterval(self.flag);
             self.endFunc();
                endTimeTimedTask();
                Reload();
          } else {
             var minute, hour, day, second;
             day = Math.floor(self.time / 60 / 60 / 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 / 24) : Math.floor(self.time / 60 / 60 / 24);
             hour = Math.floor(self.time / 60 / 60 % 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 % 24) : Math.floor(self.time / 60 / 60 % 24);
             minute = Math.floor(self.time / 60 % 60) < 10 ? '0' + Math.floor(self.time / 60 % 60) : Math.floor(self.time / 60 % 60);
             second = Math.floor(self.time % 60) < 10 ? '0' + Math.floor(self.time % 60) : Math.floor(self.time % 60);
    
             //倒计时执行函数
             self.countFunc(second, minute, hour, day);
             self.time--;
          }
       }, 1000);
    }
    
    调用:
    for (var i = 0; i < list.length; i++) {
       list[i].showTime = countTime(list[i].endTime);
       (function (ele) {
          alarm = new Alarm(ele.endTime, function (second, minute, hour, day) { //计时钟
             var timeStr = day + ':' + hour + ':' + minute + ':' + second;
             ele.showTime = timeStr;
          }, function () { //倒计时结束
             ele.showTime = '00:00:00:00'
          });
          alarm.start();
       })(list[i]);
       that.resultList.push(list[i]);
      
    }
  • 相关阅读:
    网络流24题
    可持久化Treap
    后缀平衡树
    bzoj2561-最小生成树
    poj3164-Command Network
    最小树形图
    hdu2121-Ice_cream’s world II
    线性处理逆元
    bzoj3992-序列统计
    JavaScript 类型转换
  • 原文地址:https://www.cnblogs.com/lmxxlm-123/p/8881773.html
Copyright © 2020-2023  润新知