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);
}