本文實例總結了JS常用倒計時代碼。分享給大家供大家參考,具體如下:
第一種:精確到秒的javascript倒計時代碼
<form name="form1"><div align="center" align="center"><center>離2010年還有:<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 - NowHourMinuteleft = 59 - NowMinuteSecondleft = 59 - NowSecondYearleft = 2009 - NowYearMonthleft = 12 - NowMonth - 1Dateleft = 31 - NowDateif (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>
第二種:某某運動會
<!--倒計時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*60000var 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*60000var 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 = "<fontsetTimeout("DigitalTime1()",1000)}if (day<0) //已經開幕{//LiveClock1.innerHTML = "現在離"+symbol+"還有"+day+"天"+hour+"小時"+minute+"分"+second +"秒"LiveClock1.innerHTML = "<fontsetTimeout("DigitalTime1()",1000)}if (day==0) //正在開幕{//LiveClock1.innerHTML = "現在"+symbol+"天"LiveClock1.innerHTML = "<fontsetTimeout("DigitalTime1()",1000)}if (day<0 & day_2>19) //某某運動會結束{//LiveClock1.innerHTML = "現在離"+symbol+"還有"+day+"天"+hour+"小時"+minute+"分"+second +"秒"LiveClock1.innerHTML = "<fontsetTimeout("DigitalTime1()",1000)}}// --></script><!--倒計時Javascript end--><body onload=DigitalTime1()><div id= LiveClock1></div></body>
第三種:小時倒計時
<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>
第四種:最簡倒計時
<Script Language="JavaScript"><!-- Beginvar 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>
第五種:最簡倒計時二
<script language="JavaScript" type="text/javascript">function djs(){var urodz= new Date("11/12/2008");var now = new Date();var numvar ile = urodz.getTime() - now.getTime();var dni = Math.floor(ile / (1000 * 60 * 60 * 24));if (dni >1)num=dni+1else if (dni == 1)num=2else if (dni == 0)num=1else num=0document.write(num)}</script>距某某開幕式還有 [<script language="JavaScript" type="text/javascript">djs()</script>] 天
第五個: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);// 自校驗系統時間得到時間差, 并由此得到下次所啟動的新定時器的時間nextelapsecounter++;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>
PS:這里再為大家推薦幾款時間及計時器相關工具供大家參考使用:
在線秒表工具:
http://tools.VeVB.COm/bianmin/miaobiao
Unix時間戳(timestamp)轉換工具:
http://tools.VeVB.COm/code/unixtime
在線世界各地時間查詢:
http://tools.VeVB.COm/zhuanhuanqi/worldtime
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript時間與日期操作技巧總結》《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答