js一个页面多个倒计时函数

时间: 作者:admin 浏览:
例子:

//倒计时
//systemDate服务器时间(格式2016/12/21/ 18:00:00)//每刷新一次都不同(必填,如果没有则填空null,用得是本机系统时间);
//lastDate截止时间(格式2016/12/21/ 18:00:00)(必填);
//exportTime事件输出函数exportTime(int_day,int_hour,int_minute,int_second,i)返回值分别是天时分秒(必填);赋值过程可以变化对应input的宽高以适应数字长度;
//callback倒计时完毕之后的回调函数(按钮变灰色等)(选填);
//i为定时器的index编码,也作为循环的序号,页面有多个定时器时使用,默认是0,注意不建议重复使用同一个index,否则可能冲突;(选填);
function ShowTimeCountDown(systemDate,lastDate,exportTime,callback,i){
    var time_start=new Date(systemDate).getTime(); //设定当前系统时间//服务器系统时间
    //alert(time_start);
if((time_start==null)||(time_start==0)){
  //$.showDialog("获取服务器时间失败,倒计时间可能不准确!");
  time_start = new Date().getTime();
}

if(i){
i=i;
}else{
i=0;
}

//获取截止时间
//alert(time_start);
var time_end=[];
    time_end[i]=new Date(lastDate).getTime();
    //计算时间差
    var time_distance=[];
    time_distance[i] = time_end[i] - time_start;//当前时间离结束的时间差
    //alert(i);
    var timer=[];
    if(time_distance[i]<0){
     if(timer[i]){clearInterval(timer[i]);}
     if(callback){
     callback(i);
     }
}
timer[i]=setInterval(function(){
    //alert(time_distance[i]);
   // 天
   var int_day=[];
    int_day[i] = Math.floor(time_distance[i]/86400000);
   var time_distance1 =time_distance[i] - int_day[i] * 86400000;
   // 时
   //alert(int_day);
   var int_hour=[];
int_hour[i] = Math.floor(time_distance1/3600000) ;
   var time_distance2 =time_distance1-int_hour[i] * 3600000; 
   // 分
    //alert(time_distance1);
   //alert(int_hour);
   var int_minute=[];
    int_minute[i] = Math.floor(time_distance2/60000) ;
   var time_distance3 =time_distance2-int_minute[i] * 60000; 
   // 秒 
   var int_second=[];
    int_second[i] = Math.floor(time_distance3/1000) ;
   // 时分秒为单数时、前面加零 
   //alert(int_second);
   if(int_day[i] < 10){ 
       int_day[i] = "0" + int_day[i];
   }
   if(int_day[i]>99){
    $("#time-d").css("width","2em");
   }
   if(int_hour[i] < 10){ 
       int_hour[i] = "0" + int_hour[i]; 
   } 
   if(int_minute[i] < 10){ 
       int_minute[i] = "0" + int_minute[i]; 
   } 
   if(int_second[i] < 10){
       int_second[i] = "0" + int_second[i]; 
   } 
    
    if(time_distance[i]<0){

    if(timer[i]){clearInterval(timer[i]);}
    //alert("倒计时完了之后所执行的代码。。。。");
    if(callback){
    callback(i);
    }
    

   }else{
    //这个函数是将天时分秒赋值到对应的标签上
    if(exportTime){
    exportTime(int_day[i],int_hour[i],int_minute[i],int_second[i],i);
    }
    //执行一次减一次1s
    time_distance[i]-=1000;
   
}
   
},1000);

}
微信公众号
微信公众号:
  • 前端全栈之路(微信群)
前端QQ交流群
前端QQ交流群:
  • 794324979
  • 734802480(已满)

更多文章

栏目文章


Copyright © 2014-2023 seozhijia.net 版权所有-粤ICP备13087626号-4