js精准的倒计时函数分享

先看看倒计时效果:

 

代码:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>倒计时函数</title>

<script>

var timer=(function(){

return function (json){

if(json.currentTime){

var now=new Date();

var year=now.getFullYear();//返回年份(4位数字)

var month=now.getMonth()+1;//返回月份(0-11,所以+1)

var day=now.getDate();//返回某天(1-31)

var h=now.getHours();//返回小时(0-23)

var m=now.getMinutes();//返回分钟(0-59)

var s=now.getSeconds();//返回秒数(0-59)

//补O

m=m<10?'0'+m:m;

s=s<10?'0'+s:s;

var weekday=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];

document.getElementById(json.objId).innerHTML=year+'年'+month+'月'+day+'日'+weekday[now.getDay()]+' '+h+':'+m+':'+s;

setTimeout(function(){timer(json)},1000);

}else{

var endtime=new Date(json.endtime);//结束时间

var nowtime = new Date();//当前时间

var lefttime=parseInt((endtime.getTime()-nowtime.getTime())/1000); //计算差的秒数

//一天24小时 一小时60分钟 一分钟60秒

d=parseInt(lefttime/3600/24);

h=parseInt((lefttime/3600)%24);

m=parseInt((lefttime/60)%60);

s=parseInt(lefttime%60);

document.getElementById(json.objId).innerHTML=d+"天"+h+"小时"+m+"分"+s+"秒";

if(lefttime>0){setTimeout(function(){timer(json)},1000);}

}

}

})()

window.onload=function(){

timer({

currentTime:true,

objId:'thisTime'

})

timer({

objId:'countDown',

endtime:"2016/9/1,18:00"

})

}

</script>

</head>

<body>

<b>当前时间:</b> <span id="thisTime"></span><br/><br/>

<b>距离2016/9/1 18:00还有:</b> <span id="countDown"></span>

</body>

</html>

注意点:

 1.有两个功能:当前时间和倒计时,带的参数不同

 2.主要是利用js返回的数据,要注意月份,某天,小时,分钟,返回的数值区间

 3.星期的我这边用数组处理了

 4.倒计时主要是计算时间差,结束时间减去当前时间的秒数,在进行数学计算

 5.这里用了闭包,防止多个定时器冲突

 6.这边的代码比较易懂,牛人可以改造成插件,还望分享分享。

以上是 js精准的倒计时函数分享 的全部内容, 来源链接: utcz.com/z/314656.html

回到顶部