时间戳倒计时,多个倒计时

/**
*startime 应该是毫秒数,endTime结束时间搓毫秒数
*/

// 倒计时
var Alarm = function (startime, endtime, countFunc, endFunc) {
	console.log("startTime:"+startime+"endTime:"+endtime)
    this.time = Math.floor((endtime - startime) / 1000); //时间
	console.log("time:"+this.time)
    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();
      console.log('计时结束');
    } else {
	// console.log("time1:"+self.time)
      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);
}

调用多个倒计时:

var countTime = function (obj) {
  var eles = $(obj);		//同一个类来调用多个倒计时
    len = eles.length;
//	console.log("len:"+len)
  for (len; len > 0; len--) {
    var ele = eles.eq(len - 1);
    (function (ele) {
		var startTime = new Date().getTime();
         endTime = ele.attr('data-time'),
		 // console.log("startTime:"+startTime+"endTime:"+endTime)
          alarm = new Alarm(startTime, endTime, function (second, minute, hour, day) { //计时钟
            ele.text(hour + ':' + minute + ':' + second);
          }, function () { //倒计时结束
            ele.text('00:00:00');
         //   window.location.reload();
          });
      alarm.start();
    })(ele);
  }
};

调用:countTime($(".endtime"));        //倒计时,结束时间搓,毫秒,传需要倒计时的类,data-time这个里面传结束时间

注意:startime 应该是毫秒数,endTime结束时间搓毫秒数。开始时间获取的是毫秒,接受时间也应该传毫秒。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页