同页面多记录JS倒计时器

功能:同页面多个倒计时器(用服务器时间)
作者:zjwtnt
时间:2015-8-24
strttime:开始时间,如:2015-10-01 10:01:01 需要前导零
obj:显示倒计时的按钮,如果是链接的话就需要自行修改下边源码
endtime:结束时间,如:2015-10-01 10:01:01 需要前导零


	
	function timer(strtime,obj,endtime)  
	{	
		var reg = /^(\d+)\-(\d{1,2})\-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
		var r = strtime.match(reg);
		var r_curr = curr_time.match(reg);
		if(r==null)return false;
		r[2]=r[2]-1;
		if(r_curr==null)return false;		
		r_curr[2]=r_curr[2]-1;	
		var ts = (new Date(r[1],r[2],r[3],r[4],r[5],r[6]) - (new Date(r_curr[1],r_curr[2],r_curr[3],r_curr[4],r_curr[5],r_curr[6])));//计算剩余的毫秒数  
		var dd = parseInt(ts / 1000 / 60 / 60 / 24, 10);//计算剩余的天数  
		var hh = parseInt(ts / 1000 / 60 / 60 % 24, 10);//计算剩余的小时数  
		var mm = parseInt(ts / 1000 / 60 % 60, 10);//计算剩余的分钟数  
		var ss = parseInt(ts / 1000 % 60, 10);//计算剩余的秒数  
		dd = dd<10?("0"+dd):dd;  
		hh = hh<10?("0"+hh):hh;  
		mm = mm<10?("0"+mm):mm;  
		ss = ss<10?("0"+ss):ss;  
		
		//距离结束	
		var r_end = endtime.match(reg);
		r_end[2]=r_end[2]-1;	
		var end_ts = ( new Date(r_end[1],r_end[2],r_end[3],r_end[4],r_end[5],r_end[6]) - (new Date(r_curr[1],r_curr[2],r_curr[3],r_curr[4],r_curr[5],r_curr[6]))  );
		var end_dd = parseInt(end_ts / 1000 / 60 / 60 / 24, 10); 
		var end_hh = parseInt(end_ts / 1000 / 60 / 60 % 24, 10);
		var end_mm = parseInt(end_ts / 1000 / 60 % 60, 10);
		var end_ss = parseInt(end_ts / 1000 % 60, 10);
		
		end_dd = end_dd<10?("0"+end_dd):end_dd;  
		end_hh = end_hh<10?("0"+end_hh):end_hh;  
		end_mm = end_mm<10?("0"+end_mm):end_mm;  
		end_ss = end_ss<10?("0"+end_ss):end_ss;    
		//alert(end_ss);
		//未开始
		if(ss>0 || mm>0){
			//alert(dd + "天" + hh + "时" + mm + "分" + ss + "秒");
			if(dd>0){
				document.getElementById(obj).value = "距离活动开始还有"+dd + "天" + hh + "时" + mm + "分" + ss + "秒";  	
			}
			else if(dd==0 && hh>0){
				document.getElementById(obj).value = "距离活动开始还有" + hh + "时" + mm + "分" + ss + "秒"; 		
			}
			else if(dd==0 && hh==0 && mm>0){
				document.getElementById(obj).value = "距离活动开始还有" + mm + "分" + ss + "秒"; 				
			}
			else if(dd==0 && hh==0 && mm==0 && ss>0){
				document.getElementById(obj).value = "距离活动开始还有" + ss + "秒";
			}
			else {
				document.getElementById(obj).value = "进行中...";
			}
		}
		//进行中
		else if(end_ss>0 || end_mm>0){
			document.getElementById(obj).style.background="#ff5252";		
			if(end_dd>0){
				document.getElementById(obj).value = "距离活动结束还有"+end_dd + "天" + end_hh + "时" + end_mm + "分" + end_ss + "秒";  	
			}
			else if(end_dd==0 && end_hh>0){
				document.getElementById(obj).value = "距离活动结束还有" + end_hh + "时" + end_mm + "分" + end_ss + "秒"; 		
			}
			else if(end_dd==0 && end_hh==0 && end_mm>0){
				document.getElementById(obj).value = "距离活动结束还有" + end_mm + "分" + end_ss + "秒"; 				
			}
			else if(end_dd==0 && end_hh==0 && end_mm==0 && end_ss>0){
				document.getElementById(obj).value = "距离活动结束还有" + end_ss + "秒";
			}
			else {
				//document.getElementById(obj).value = "活动已结束...";
				//document.getElementById(obj).style.border="#666666";
				//document.getElementById(obj).style.background="#cccccc";
				//#ff5252;
			}		
		}
		else {
			document.getElementById(obj).value = "活动已结束...";
			document.getElementById(obj).style.border="#666666";
			document.getElementById(obj).style.background="#cccccc";		
		}
		setTimeout("timer('"+strtime+"','"+obj+"','"+endtime+"')",1000);			
	}





/*
功能:同页面多个倒计时器
作者:zjwtnt
时间:2015-8-24
strttime:日期,如:2015-10-01 10:01:01 需要前导零
obj:显示倒计时的按钮,如果是链接的话就需要自行修改下边源码
*/
function timer(strtime,obj)  
{  
	var reg = /^(\d+)\-(\d{1,2})\-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})$/;
    var r = strtime.match(reg);   	
    if(r==null)return false;
	r[2]=r[2]-1;	
	var ts = (new Date(r[1],r[2],r[3],r[4],r[5],r[6]) - (new Date()));//计算剩余的毫秒数  
	var dd = parseInt(ts / 1000 / 60 / 60 / 24, 10);//计算剩余的天数  
	var hh = parseInt(ts / 1000 / 60 / 60 % 24, 10);//计算剩余的小时数  
	var mm = parseInt(ts / 1000 / 60 % 60, 10);//计算剩余的分钟数  
	var ss = parseInt(ts / 1000 % 60, 10);//计算剩余的秒数  
	dd = dd<10?("0"+dd):dd;  
	hh = hh<10?("0"+hh):hh;  
	mm = mm<10?("0"+mm):mm;  
	ss = ss<10?("0"+ss):ss;  
	//alert(dd + "天" + hh + "时" + mm + "分" + ss + "秒");
	if(dd>0){
		document.getElementById(obj).value = "距离活动开始还有"+dd + "天" + hh + "时" + mm + "分" + ss + "秒";  	
	}
	else if(dd==0 && hh>0){
		document.getElementById(obj).value = "距离活动开始还有" + hh + "时" + mm + "分" + ss + "秒"; 		
	}
	else if(dd==0 && hh==0 && mm>0){
		document.getElementById(obj).value = "距离活动开始还有" + mm + "分" + ss + "秒"; 				
	}
	else if(dd==0 && hh==0 && mm==0 && ss>0){
		document.getElementById(obj).value = "距离活动开始还有" + ss + "秒";
	}
	else {
		document.getElementById(obj).value = "进行中...";
	}
	setTimeout("timer('"+strtime+"','"+obj+"')",1000);			
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值