js倒计时的实现
Posted hopeelephant
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js倒计时的实现相关的知识,希望对你有一定的参考价值。
下面简单介绍三种不同的倒计时方法。
先来看一种使用的getTime()方法,。这个时间指的是从1970年午夜到现在的时间,。好了知道了这个,就好办了,。
来看看代码
<script> function fresh(){ var over = "2016/12/11,20:00:00"; var endtime = new Date(over); var nowtime = new Date(); var leftsecond = parseInt((endtime.getTime()-nowtime.getTime())/1000); var day = parseInt(leftsecond/3600/24); var h =parseInt((leftsecond/3600)%24); console.log(h); var m =parseInt((leftsecond/60)%60); var s =parseInt(leftsecond%60); var hour = day*24+h; $("p").text(hour+":"+m+":"+s); if(leftsecond<=0){ td="00"; m="00"; s="00"; clearInterval(t); } } fresh(); var t =setInterval(fresh,1000); </script>
首先设置一个函数,最后调用,调用之后再设一个定时器,为什么要调用,是因为你不调用的话就是一秒钟之后再执行,另外函数里面应该写什么呢,我们一一来看,首先我们得设一个结束时间,。var d = "2016/12/11,20:00:00";,接着我们将这个结束函数放在var endtime = new Date(d);
接着我们再来设置一个当前时间var nowtime = new Date();用结束时间减去当前时间,就是倒计时的时间,
var leftsecond = parseInt((endtime.getTime()-nowtime.getTime())/1000);从1970年午夜到我设置的时间-当前的时间得到的毫秒数,除以1000,最后的
结果就是剩余的秒数,。
var day = parseInt(leftsecond/3600/24); 获取天数;
var h =parseInt((leftsecond/3600)%24); 获取小时数,
var m =parseInt((leftsecond/60)%60); 获取分钟数,
var s =parseInt(leftsecond%60); 获取秒数
这里灵活的运用了%取莫的方法,简单的来说,如果你除出来的结果是天数的话,那么取莫的结果就是小时数,如果你除出来的结果是小时的话,那么取莫的结果就是分钟数,如果你除出来的结果是分钟的话,那么取莫的结果就是秒数。
var hour = day*24+h; 这是最后的小时数,用得到的天数*24在加上剩余的小时数,就是总小时数,
$("p").text(hour+":"+m+":"+s);最后将得到的结果放到P元素里面。
if(leftsecond<=0){
td="00";
m="00";
s="00";
clearInterval(t);
}
我们再来做一下判断,。
最后调用函数和定时。
fresh();
var t =setInterval(fresh,1000);
再来看看第二种方法
<script> function fresh(){ var date = new Date(); var endH = 23; var endM = 27; var endS = 26; var h =date.getHours(); var m =date.getMinutes(); var s =date.getSeconds(); var left = (23*3600+27*60+30)-(h*3600+m*60+s); var hh = Math.floor(left/3600); var mm = Math.floor(left%3600/60); var ss =left%3600%60; $("p").text(hh+":"+mm+":"+ss); if(left<=0){ hh="0"+"0"; mm="0"+"0"; ss="0"+"0"; clearInterval(t); $("span").text("我爱你") } } fresh() var t =setInterval(fresh,1000); </script>
这个的基本思路就是先获得我们最后结束的时间,算出总秒数,减去当前时间得总秒数,最后求出剩余倒计时的总秒数,。最后也还是用取莫的方法得到结果,
思路和上面是差不多的。
再来看看第三种方法
<script> var hour=14; var minute=36; var second =50; var showHour,showMinute,showSecond; function fresh(){ var date = new Date(); var nowHour = date.getHours(); var nowMinute = date.getMinutes(); var nowSecond = date.getSeconds(); showHour = hour-nowHour; if(minute<nowMinute){ showHour-=1; showMinute=minute+60-showMinute; }else{ showMinute=minute-nowMinute; } if(second<nowSecond){ showMinute-=1; showSecond +=second+60-showMinute; }else{ showSecond=second-nowSecond; } if(showHour<10){ showHour = "0"+showHour; } if(showMinute<10){ showMinute = "0"+showMinute; } if(showSecond<10){ showSecond = "0"+showSecond; } $("input").val(showHour+":"+showMinute+":"+showSecond); if(showHour==0 && showMinute==0 && showSecond==0) clearInterval(t); } fresh(); var t =setInterval(fresh,1000); </script>
这种思路需要注意是,我们先来做一个判断,
if(minute<nowMinute){ showHour-=1; showMinute=minute+60-nowMinute; }else{ showMinute=minute-nowMinute; } if(second<nowSecond){ showMinute-=1; showSecond +=second+60-showSecond; }else{ showSecond=second-nowSecond; }
思路就是当设置的分钟数小于当前的分钟数的时候,显示的小时数减1,显示的分钟数就是设置的分钟数加上60-当前的分钟数,。如果设置的秒数小于当前的秒数的话,那么显示的分钟数就
自减1,而显示出来的秒数就是设置的秒数-当前的秒数,。这就是基本的思路
以上是关于js倒计时的实现的主要内容,如果未能解决你的问题,请参考以下文章