小程序中的倒计时

var total_micro_second = 60 * 1000 * 60 * 24;
/* 毫秒级倒计时 */
function count_down(that) {
  // 渲染倒计时时钟
  var arr = date_format(total_micro_second);
  that.setData({
        clock:arr[5],
          second: arr[0],
          hr: arr[1],
          min: arr[2],
          sec: arr[3],
          micro_sec: arr[4],
        
    // clock:date_format(total_micro_second)
  });

  if (total_micro_second <= 0) {
    that.setData({
      clock:"已经截止"
    });
    // timeout则跳出递归
    return ;
  }    
  setTimeout(function(){
    // 放在最后--
  total_micro_second -= 10;
  count_down(that);
}
,10)
}

// 时间格式化输出,如03:25:19 86。每10ms都会调用一次
function date_format(micro_second) {
  // 秒数
  var second = Math.floor(micro_second / 1000);
  // 小时位
  var hr = Math.floor(second / 3600);
  // 分钟位
  var min = fill_zero_prefix(Math.floor((second - hr * 3600) / 60));
  // 秒位
var sec = fill_zero_prefix((second - hr * 3600 - min * 60));// equal to => var sec = second % 60;
// 毫秒位,保留2位
var micro_sec = fill_zero_prefix(Math.floor((micro_second % 1000) / 10));
  
  var arr=[];
  var clock = hr + ":" + min + ":" + sec + " " + micro_sec;
  arr[0] = second; arr[1] = hr; arr[2] = min; arr[3] = sec; arr[4] = micro_sec; arr[5] = clock;
  return arr;

// return hr + ":" + min + ":" + sec + " " + micro_sec;
}

// 位数不足补零
function fill_zero_prefix(num) {
return num < 10 ? "0" + num : num
}

Page({
	data: {
		clock: '',
		second:'',
		hr:'',
		min:'',
		sec:'',
		micro_sec:'',
	},
	onLoad: function() {
		count_down(this);
  }
});

猜你喜欢

转载自blog.csdn.net/Lschange/article/details/83147963