天天看点

setInterval自增倒计时 精确到毫秒

跟上一篇倒计时不同的是:上一篇是倒计时一次,这一片是倒计时多次

实现效果:固定时间段多次倒计时 ---> 例如:每隔10分钟倒计一次

思路:

结束时间是固定不变的(endTime),一直在改变的是当下的时间(curTime = new date());

时间差 = 结束时间 - 开始时间(leftTime = endTime - curTime);

选择一个结束时间作为固定的基础结束时间;

在时间差即上一次倒计时时间为0的时候,基础结束时间自增10分钟开始下一次的倒计时;

知识点:

new Date("2017/06/22,17:00:00") = new Date(1498122000000);//这两种形式代表同一个时间点

+= ;//自增

其他知识点和上一篇一样;

一分钟倒计时为例:

<p class="time"></p>
           
var initEndTime;//基础结束时间
var endTime;//结束时间
var leftTime;//时间差
initEndTime = 1498118720000;//基础结束时间
	

function timeLeft(select){
		
	endTime = new Date(initEndTime);//结束时间
	leftTime = endTime - new Date();//时间差
		
	if(leftTime < 0){
		initEndTime += 1000*60;//时间差为0时,基础结束时间自增一分钟
	}
		
	var d = Math.floor(leftTime/(1000*60*60*24));
	var h = Math.floor(leftTime/(1000*60*60)%60);
	var m = Math.floor(leftTime/(1000*60)%60);
	var s = Math.floor(leftTime/1000%60);
	var ms = Math.floor(leftTime%1000);
	$(select).text(d+"天"+h+"时"+m+"分"+s+"秒"+ms+"毫秒");
}

	
var timer = setInterval(function(){
	timeLeft(".time");
},1);
           

时间换算:(以毫秒为单位)

1秒 = 1000毫秒

1分钟 = 60秒

1小时 = 60分钟

1天 = 24小时