這里給大家總結了一些比較常用的javascript實現的倒計時功能的代碼,非常的實用,有需要的小伙伴可以參考下。
這里是一個JavaScript中顯示倒計時的方法,從10一秒一秒地往下減直到計時結束(即0),代碼如下:
- runCount(10);
- function runCount(t){
- if(t>0){
- document.getElementById(‘shownum').innerHTML = t;
- t–;
- setTimeout(function(){runCount(t);},1000);
- }else{
- document.getElementById(‘shownum').innerHTML = ‘倒計時結束!';
- }
- }
運行該js代碼前,需要先添加一個id為shownum的div。
js實現動態倒計時功能 * a是從后臺接收到的時間戳,需轉換成毫秒單位
- <div>
- 距明年還有:
- <span id='daya'></span>天
- <span id='hoursa'></span>小時
- <span id='minua'></span>分
- <span id='secoa'></span>秒
- </div>
- <script type="text/javascript">
- /**
- *
- * copyright WE 2012.7
- * js實現動態倒計時功能
- * a是從后臺接收到的時間戳,需轉換成毫秒單位
- *
- */
- var a=12345678; //以毫秒為單位
- function fomtime()
- {
- a=a-1000;
- var b=new Date();
- b.setTime(0);
- var c=new Date();
- c.setTime(a);
- var day1=b.getDate(); //為方便調用,把天數、小時等單獨定義
- var hours1=b.getHours();
- var minu1=b.getMinutes();
- var seco1=b.getSeconds();
- var day2=c.getDate();
- var hours2=c.getHours();
- var minu2=c.getMinutes();
- var seco2=c.getSeconds();
- var day=day2-day1;
- var hours=hours2-hours1;
- var minu=minu2-minu1;
- var seco=seco2-seco1;
- document.getElementById('daya').innerHTML=day;
- document.getElementById('hoursa').innerHTML=hours;
- document.getElementById('minua').innerHTML=minu;
- document.getElementById('secoa').innerHTML=seco;
- setTimeout("fomtime()",1000);
- }
- fomtime();
- </script>
按天倒計時
HTML代碼1:
- <Script Language="JavaScript">
- <!-- Begin
- var timedate= new Date("January 14,2006");
- var times="研究生考試";
- var now = new Date();
- var date = timedate.getTime() - now.getTime();
- var time = Math.floor(date / (1000 * 60 * 60 * 24));
- if (time >= 0) ;
- document.write("<li><font color=#DEDBDE>現在離2006年"+times+"還有: <font color=#ffffff><b>"+time +"</b></font> 天</font></li>");
- // End -->
- </Script>
HTML代碼2:
- <script language="JavaScript" type="text/javascript">
- function djs(){
- var urodz= new Date("11/12/2008");
- var now = new Date();
- var num
- var ile = urodz.getTime() - now.getTime();
- var dni = Math.floor(ile / (1000 * 60 * 60 * 24));
- if (dni >1)num=dni+1
- else if (dni == 1)num=2
- else if (dni == 0)num=1
- else num=0
- document.write(num)
- }
- </script>
距某某開幕式還有 [] 天
精確到秒的javascript倒計時代碼
HTML代碼:
- <form name="form1">
- <div align="center" align="center">
- <center>離2013年還有:<br>
- <input type="textarea" name="left" size="35" style="text-align: center">
- </center>
- </div>
- </form>
- <script LANGUAGE="javascript">
- startclock()
- var timerID = null;
- var timerRunning = false;
- function showtime() {
- Today = new Date();
- var NowHour = Today.getHours();
- var NowMinute = Today.getMinutes();
- var NowMonth = Today.getMonth();
- var NowDate = Today.getDate();
- var NowYear = Today.getYear();
- var NowSecond = Today.getSeconds();
- if (NowYear <2000)
- NowYear=1900+NowYear;
- Today = null;
- Hourleft = 23 - NowHour
- Minuteleft = 59 - NowMinute
- Secondleft = 59 - NowSecond
- Yearleft = 2009 - NowYear
- Monthleft = 12 - NowMonth - 1
- Dateleft = 31 - NowDate
- if (Secondleft<0)
- {
- Secondleft=60+Secondleft;
- Minuteleft=Minuteleft-1;
- }
- if (Minuteleft<0)
- {
- Minuteleft=60+Minuteleft;
- Hourleft=Hourleft-1;
- }
- if (Hourleft<0)
- {
- Hourleft=24+Hourleft;
- Dateleft=Dateleft-1;
- }
- if (Dateleft<0)
- {
- Dateleft=31+Dateleft;
- Monthleft=Monthleft-1;
- }
- if (Monthleft<0)
- {
- Monthleft=12+Monthleft;
- Yearleft=Yearleft-1;
- }
- Temp=Yearleft+'年, '+Monthleft+'月, '+Dateleft+'天, '+Hourleft+'小時, '+Minuteleft+'分, '+Secondleft+'秒'
- document.form1.left.value=Temp;
- timerID = setTimeout("showtime()",1000);
- timerRunning = true;
- }
- var timerID = null;
- var timerRunning = false;
- function stopclock () {
- if(timerRunning)
- clearTimeout(timerID);
- timerRunning = false;
- }
- function startclock () {
- stopclock();
- showtime();
- }
- // -->
- </script>
某某運動會,按時間提示不同的階段
HTML代碼:
- <!--倒計時Javascript begin-->
- <script language="JavaScript">
- <!--
- function DigitalTime1()
- {
- var deadline= new Date("08/13/2007") //開幕倒計時
- var symbol="8月13日"
- var now = new Date()
- var diff = -480 - now.getTimezoneOffset() //是北京時間和當地時間的時間差
- var leave = (deadline.getTime() - now.getTime()) + diff*60000
- var day = Math.floor(leave / (1000 * 60 * 60 * 24))
- var hour = Math.floor(leave / (1000*3600)) - (day * 24)
- var minute = Math.floor(leave / (1000*60)) - (day * 24 *60) - (hour * 60)
- var second = Math.floor(leave / (1000)) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60)
- var deadline_2= new Date("08/13/2004") //開幕后計時
- var symbol_2="8月13日"
- var now_2 = new Date()
- var diff_2 = -480 - now.getTimezoneOffset() //是北京時間和當地時間的時間差
- var leave_2 = (now_2.getTime() - deadline_2.getTime()) + diff_2*60000
- var day_2 = Math.floor(leave_2 / (1000 * 60 * 60 * 24))
- var hour_2 = Math.floor(leave_2 / (1000*3600)) - (day_2 * 24)
- var minute_2 = Math.floor(leave_2 / (1000*60)) - (day_2 * 24 *60) - (hour_2 * 60)
- var second_2 = Math.floor(leave_2 / (1000)) - (day_2 * 24 *60*60) - (hour_2 * 60 * 60) - (minute_2*60)
- day=day+1;
- day_2=day_2+1;
- if (day>0) //還未開幕
- {
- //LiveClock1.innerHTML = "現在"+symbol+"天"
- LiveClock1.innerHTML = "<font
- setTimeout("DigitalTime1()",1000)
- }
- if (day<0) //已經開幕
- {
- //LiveClock1.innerHTML = "現在離"+symbol+"還有"+day+"天"+hour+"小時"+minute+"分"+second +"秒"
- LiveClock1.innerHTML = "<font
- setTimeout("DigitalTime1()",1000)
- }
- if (day==0) //正在開幕
- {
- //LiveClock1.innerHTML = "現在"+symbol+"天"
- LiveClock1.innerHTML = "<font
- setTimeout("DigitalTime1()",1000)
- }
- if (day<0 & day_2>19) //某某運動會結束
- {
- //LiveClock1.innerHTML = "現在離"+symbol+"還有"+day+"天"+hour+"小時"+minute+"分"+second +"秒"
- LiveClock1.innerHTML = "<font
- setTimeout("DigitalTime1()",1000)
- }
- }
- // -->
- </script>
- <!--倒計時Javascript end-->
- <body onload=DigitalTime1()>
- <div id= LiveClock1></div>
- </body>
按小時倒計時
HTML代碼:
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- var maxtime = 60*60 //一個小時,按秒計算,自己調整!
- function CountDown(){
- if(maxtime>=0){
- minutes = Math.floor(maxtime/60);
- seconds = Math.floor(maxtime%60);
- msg = "距離結束還有"+minutes+"分"+seconds+"秒";
- document.all["timer"].innerHTML=msg;
- if(maxtime == 5*60)
- alert('注意,還有5分鐘!');
- --maxtime;
- }
- else{
- clearInterval(timer);
- alert("時間到,結束!");
- }
- }
- timer = setInterval("CountDown()",1000);
- //-->
- </SCRIPT>
- <div id="timer" style="color:red"></div>
Javascript倒計時器 - 采用系統時間自校驗
這次利用系統時間自校驗倒計時, 無需手工調校使得倒計時更為精確, 代碼及詳細注釋如下:
- <span id="clock">00:01:11:00</span>
- <input id="startB" type="button" value="start countdown!" onclick="run()">
- <input id="endB" type="button" value="stop countdown!" onclick="stop()">
- <br>
- <input id="diff" type="text">
- <input id="next" type="text">
- <script language="Javascript">
- var normalelapse = 100;
- var nextelapse = normalelapse;
- var counter;
- var startTime;
- var start = clock.innerText;
- var finish = "00:00:00:00";
- var timer = null;
- // 開始運行
- function run() {
- startB.disabled = true;
- endB.disabled = false;
- counter = 0;
- // 初始化開始時間
- startTime = new Date().valueOf();
- // nextelapse是定時時間, 初始時為100毫秒
- // 注意setInterval函數: 時間逝去nextelapse(毫秒)后, onTimer才開始執行
- timer = window.setInterval("onTimer()", nextelapse);
- }
- // 停止運行
- function stop() {
- startB.disabled = false;
- endB.disabled = true;
- window.clearTimeout(timer);
- }
- window.onload = function() {
- endB.disabled = true;
- };
- // 倒計時函數
- function onTimer()
- {
- if (start == finish)
- {
- window.clearInterval(timer);
- alert("time is up!");
- return;
- }
- var hms = new String(start).split(":");
- var ms = new Number(hms[3]);
- var s = new Number(hms[2]);
- var m = new Number(hms[1]);
- var h = new Number(hms[0]);
- ms -= 10;
- if (ms < 0)
- {
- ms = 90;
- s -= 1;
- if (s < 0)
- {
- s = 59;
- m -= 1;
- }
- if (m < 0)
- {
- m = 59;
- h -= 1;
- }
- }
- var ms = ms < 10 ? ("0" + ms) : ms;
- var ss = s < 10 ? ("0" + s) : s;
- var sm = m < 10 ? ("0" + m) : m;
- var sh = h < 10 ? ("0" + h) : h;
- start = sh + ":" + sm + ":" + ss + ":" + ms;
- clock.innerText = start;
- // 清除上一次的定時器
- window.clearInterval(timer);
- // 自校驗系統時間得到時間差, 并由此得到下次所啟動的新定時器的時間nextelapse
- counter++;
- var counterSecs = counter * 100;
- var elapseSecs = new Date().valueOf() - startTime;
- var diffSecs = counterSecs - elapseSecs;
- nextelapse = normalelapse + diffSecs;
- diff.value = counterSecs + "-" + elapseSecs + "=" + diffSecs;
- next.value = "nextelapse = " + nextelapse;
- if (nextelapse < 0) nextelapse = 0;
- // 啟動新的定時器
- timer = window.setInterval("onTimer()", nextelapse);
- }
- </script>
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答
圖片精選