javascript实现的倒计时计时器

//倒计时计时器开始代码

//起始时间
var startTime = new Date();
var start = startTime.getTime();
  //倒计时计时器,依赖函数numCount(),numCountAB(),依赖外部变量startTime,start
function countDown(needTime) {

 var flag = false;

 var tempNeedTime = needTime;
   //现在时间
 var nowTime = new Date();
 var now = nowTime.getTime();
   //已过的时间
 var last = now - start;
   
   //毫秒数截取,只要秒
 last = numCount(last / 1000, 0);
   
   //剩下的秒数
 needTime = needTime - last;
 if(needTime==0){
  flag=true;
 }
   //倒计时时间
 var hours = numCountAB(needTime / (60 * 60), 0, 2);
 var minutes = numCountAB((needTime % (60 * 60)) / 60, 0, 2);
 var seconds = numCountAB((needTime % (60 * 60)) % 60, 0, 2);


 document.getElementById("hour").innerText = hours;
 document.getElementById("minute").innerText = minutes;
 document.getElementById("seconds").innerText = seconds;
 if (flag) {
    //TODO
  
 } else {
  setTimeout("countDown(" + tempNeedTime + ")", 200);
 }
}
  //根据要求的小数点后位数截取
function numCount(num, count) {
 var numStr = num.toString();
 var pointIndex = numStr.indexOf(".");
 var numLength = num.length;
 if (pointIndex == -1) {
  return numStr;
 } else {
  if (count > numLength - pointIndex - 1) {
   return numStr;
  } else {
   if (count == 0) {
    return numStr.substr(0, pointIndex);
   } else {
    return numStr.substr(0, pointIndex + 1 + count);
   }
  }
 }
}
  //根据要求的小数点前后位数截取
function numCountAB(num, afterPointCount, beforePointCount) {
 var str = numCount(num, afterPointCount);
 var pointIndex = str.indexOf(".");
 if (pointIndex == -1) {
  pointIndex = str.length;
 }
   //如果小数点前位数小于要求位数,则在num前加相差个0,其他情况不处理
 if (beforePointCount > pointIndex) {
  for (i = 0; i < beforePointCount - pointIndex; i++) {
   str = "0" + str;
  }
 }
 return str;
}
//倒计时计时器结束代码

 

  调用timeDown(1000),参数为需要倒计时的秒数,倒计时结束时执行命令覆盖掉//TODO注释即可。

 

  PS. 这个倒计时计时器是在客户端运行,客户端的时间变化直接影响计时器,所以我感觉网页游戏用的计时器应该和这个不同,具体怎么弄的等有空研究下。

阅读更多
个人分类: 工作经历
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭