1. 程式人生 > >js 時間倒計時

js 時間倒計時

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>時間倒計時</title>
<script src="../js/jquery.js"></script>
</head>

<body>
<div id="datecount"></div>
</body>
<script>
function dateCount(start,end){
	if(new Date(start)< new Date(end)){
		var start = new Date(start);
		var end = new Date(end);
		var time =end.valueOf()-start.valueOf();
		var days=Math.floor(time/(24*3600*1000));
		var leave1=time%(24*3600*1000)    //計算天數後剩餘的毫秒數
		var hours=Math.floor(leave1/(3600*1000))
		//計算相差分鐘數
		var leave2=leave1%(3600*1000)        //計算小時數後剩餘的毫秒數
		var minutes=Math.floor(leave2/(60*1000))
		 
		
		//計算相差秒數
		var leave3=leave2%(60*1000)      //計算分鐘數後剩餘的毫秒數
		var seconds=Math.round(leave3/1000)

		var h = hours;
		var m = minutes;
		var s = seconds;
		var showh,showm,shows;
		var timeInterval = setInterval(function () {//開始執行倒計時 
		if (days ==0 && h == 0 && m == 0 && s == 0) { clearInterval(timeInterval); return; }//如果時、分、秒都為0時將停止當前的倒計時 
		if (s == 0) { s = 60; }//當秒走到0時,再次為60秒 
		if (s == 60) { 
			m -= 1;//每次當秒走到60秒時,分鐘減一 
			if (m == 0 && h > 0) {//當分等於0時並且小時還多餘1個小時的時候進裡面看看 
				h -= 1;//小時減一 
				m = 60;//分鐘自動預設為60分 
				s = 60;//秒自動預設為60秒 
			}
		}
		if(m==60){
			h-=1;
			if(h==0 && days>0){
				days-=1;
				h=23;
				m = 60;
				s = 60;
			}
		}
		s -= 1;//秒繼續跳動,減一
		showh = h<10? "0"+h:h;
		showm=m<10?'0'+m:m;
		shows=s<10?'0'+s:s;
		var showday =days==0?"":days+"天  ";
		$("#datecount").html(showday+showh+":"+showm+":"+shows);
		}, 1000);
	}else{
		$("#datecount").html("時間有誤");
	}
}
dateCount(new Date(),"2013-8-21 17:35:00");
</script>
</html>