首页 > 语言 > JavaScript > 正文

JavaScript实现简单的数字倒计时

2024-05-06 16:20:24
字体:
来源:转载
供稿:网友

这里给大家总结了一些比较常用的javascript实现的倒计时功能的代码,非常的实用,有需要的小伙伴可以参考下。

这里是一个JavaScript中显示倒计时的方法,从10一秒一秒地往下减直到计时结束(即0),代码如下:

 

 
  1. runCount(10); 
  2. function runCount(t){ 
  3. if(t>0){ 
  4. document.getElementById(‘shownum').innerHTML = t; 
  5. t–; 
  6. setTimeout(function(){runCount(t);},1000); 
  7. }else
  8. document.getElementById(‘shownum').innerHTML = ‘倒计时结束!'

运行该js代码前,需要先添加一个id为shownum的div。

js实现动态倒计时功能 * a是从后台接收到的时间戳,需转换成毫秒单位

 

 
  1. <div> 
  2. 距明年还有: 
  3. <span id='daya'></span>天 
  4. <span id='hoursa'></span>小时 
  5. <span id='minua'></span>分 
  6. <span id='secoa'></span>秒 
  7. </div> 
  8. <script type="text/javascript"
  9. /** 
  10. * 
  11. * copyright WE 2012.7 
  12. * js实现动态倒计时功能 
  13. * a是从后台接收到的时间戳,需转换成毫秒单位 
  14. * 
  15. */ 
  16. var a=12345678; //以毫秒为单位 
  17. function fomtime() 
  18. a=a-1000; 
  19. var b=new Date(); 
  20. b.setTime(0); 
  21. var c=new Date(); 
  22. c.setTime(a); 
  23. var day1=b.getDate(); //为方便调用,把天数、小时等单独定义 
  24. var hours1=b.getHours(); 
  25. var minu1=b.getMinutes(); 
  26. var seco1=b.getSeconds(); 
  27. var day2=c.getDate(); 
  28. var hours2=c.getHours(); 
  29. var minu2=c.getMinutes(); 
  30. var seco2=c.getSeconds(); 
  31. var day=day2-day1; 
  32. var hours=hours2-hours1; 
  33. var minu=minu2-minu1; 
  34. var seco=seco2-seco1; 
  35. document.getElementById('daya').innerHTML=day; 
  36. document.getElementById('hoursa').innerHTML=hours; 
  37. document.getElementById('minua').innerHTML=minu; 
  38. document.getElementById('secoa').innerHTML=seco; 
  39. setTimeout("fomtime()",1000); 
  40. fomtime(); 
  41. </script> 

按天倒计时

HTML代码1:

 

 
  1. <Script Language="JavaScript">  
  2. <!-- Begin  
  3. var timedate= new Date("January 14,2006");  
  4. var times="研究生考试";  
  5. var now = new Date();  
  6. var date = timedate.getTime() - now.getTime();  
  7. var time = Math.floor(date / (1000 * 60 * 60 * 24));  
  8. if (time >= 0) ;  
  9. document.write("<li><font color=#DEDBDE>现在离2006年"+times+"还有: <font color=#ffffff><b>"+time +"</b></font> 天</font></li>");  
  10. // End -->  
  11. </Script>  

HTML代码2:

 

 
  1. <script language="JavaScript" type="text/javascript">  
  2. function djs(){  
  3. var urodz= new Date("11/12/2008");  
  4. var now = new Date();  
  5. var num  
  6. var ile = urodz.getTime() - now.getTime();  
  7. var dni = Math.floor(ile / (1000 * 60 * 60 * 24));  
  8. if (dni >1)num=dni+1 
  9. else if (dni == 1)num=2  
  10. else if (dni == 0)num=1 
  11. else num=0  
  12. document.write(num)  
  13. }  
  14. </script>  

距某某开幕式还有 [] 天

精确到秒的javascript倒计时代码

HTML代码:

 

 
  1. <form name="form1">  
  2. <div align="center" align="center">  
  3. <center>离2013年还有:<br>  
  4. <input type="textarea" name="left" size="35" style="text-align: center">  
  5. </center>  
  6. </div>  
  7. </form>  
  8. <script LANGUAGE="javascript">  
  9. startclock()  
  10. var timerID = null;  
  11. var timerRunning = false;  
  12. function showtime() {  
  13. Today = new Date();  
  14. var NowHour = Today.getHours();  
  15. var NowMinute = Today.getMinutes();  
  16. var NowMonth = Today.getMonth();  
  17. var NowDate = Today.getDate();  
  18. var NowYear = Today.getYear();  
  19. var NowSecond = Today.getSeconds();  
  20. if (NowYear <2000)  
  21. NowYear=1900+NowYear;  
  22. Today = null;  
  23. Hourleft = 23 - NowHour  
  24. Minuteleft = 59 - NowMinute  
  25. Secondleft = 59 - NowSecond  
  26. Yearleft = 2009 - NowYear  
  27. Monthleft = 12 - NowMonth - 1 
  28. Dateleft = 31 - NowDate  
  29. if (Secondleft<0)  
  30. {  
  31. Secondleft=60+Secondleft;  
  32. Minuteleft=Minuteleft-1;  
  33. }  
  34. if (Minuteleft<0)  
  35. {  
  36. Minuteleft=60+Minuteleft;  
  37. Hourleft=Hourleft-1;  
  38. }  
  39. if (Hourleft<0)  
  40. {  
  41. Hourleft=24+Hourleft;  
  42. Dateleft=Dateleft-1;  
  43. }  
  44. if (Dateleft<0)  
  45. {  
  46. Dateleft=31+Dateleft;  
  47. Monthleft=Monthleft-1;  
  48. }  
  49. if (Monthleft<0)  
  50. {  
  51. Monthleft=12+Monthleft;  
  52. Yearleft=Yearleft-1;  
  53. }  
  54. Temp=Yearleft+'年, '+Monthleft+'月, '+Dateleft+'天, '+Hourleft+'小时, '+Minuteleft+'分, '+Secondleft+'秒' 
  55. document.form1.left.value=Temp;  
  56. timerID = setTimeout("showtime()",1000);  
  57. timerRunning = true;  
  58. }  
  59. var timerID = null;  
  60. var timerRunning = false;  
  61. function stopclock () {  
  62. if(timerRunning)  
  63. clearTimeout(timerID);  
  64. timerRunning = false;  
  65. }  
  66. function startclock () {  
  67. stopclock();  
  68. showtime();  
  69. }  
  70. // -->  
  71. </script>  

某某运动会,按时间提示不同的阶段

HTML代码:

 

 
  1. <!--倒计时Javascript begin-->  
  2. <script language="JavaScript">  
  3. <!--  
  4. function DigitalTime1()  
  5. {  
  6. var deadline= new Date("08/13/2007"//开幕倒计时  
  7. var symbol="8月13日" 
  8. var now = new Date()  
  9. var diff = -480 - now.getTimezoneOffset() //是北京时间和当地时间的时间差  
  10. var leave = (deadline.getTime() - now.getTime()) + diff*60000 
  11. var day = Math.floor(leave / (1000 * 60 * 60 * 24))  
  12. var hour = Math.floor(leave / (1000*3600)) - (day * 24)  
  13. var minute = Math.floor(leave / (1000*60)) - (day * 24 *60) - (hour * 60)  
  14. var second = Math.floor(leave / (1000)) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60)  
  15.  
  16. var deadline_2= new Date("08/13/2004"//开幕后计时  
  17. var symbol_2="8月13日" 
  18. var now_2 = new Date()  
  19. var diff_2 = -480 - now.getTimezoneOffset() //是北京时间和当地时间的时间差  
  20. var leave_2 = (now_2.getTime() - deadline_2.getTime()) + diff_2*60000 
  21. var day_2 = Math.floor(leave_2 / (1000 * 60 * 60 * 24))  
  22. var hour_2 = Math.floor(leave_2 / (1000*3600)) - (day_2 * 24)  
  23. var minute_2 = Math.floor(leave_2 / (1000*60)) - (day_2 * 24 *60) - (hour_2 * 60)  
  24. var second_2 = Math.floor(leave_2 / (1000)) - (day_2 * 24 *60*60) - (hour_2 * 60 * 60) - (minute_2*60)  
  25.  
  26. day=day+1;  
  27. day_2=day_2+1;  
  28.  
  29. if (day>0) //还未开幕  
  30. {  
  31. //LiveClock1.innerHTML = "现在"+symbol+"天"  
  32. LiveClock1.innerHTML = "<font 
  33. setTimeout("DigitalTime1()",1000)  
  34. }  
  35.  
  36. if (day<0) //已经开幕  
  37. {  
  38. //LiveClock1.innerHTML = "现在离"+symbol+"还有"+day+"天"+hour+"小时"+minute+"分"+second +"秒"  
  39. LiveClock1.innerHTML = "<font 
  40. setTimeout("DigitalTime1()",1000)  
  41. }  
  42.  
  43. if (day==0) //正在开幕  
  44. {  
  45. //LiveClock1.innerHTML = "现在"+symbol+"天"  
  46. LiveClock1.innerHTML = "<font 
  47. setTimeout("DigitalTime1()",1000)  
  48. }  
  49.  
  50. if (day<0 & day_2>19) //某某运动会结束  
  51. {  
  52. //LiveClock1.innerHTML = "现在离"+symbol+"还有"+day+"天"+hour+"小时"+minute+"分"+second +"秒"  
  53. LiveClock1.innerHTML = "<font 
  54. setTimeout("DigitalTime1()",1000)  
  55. }  
  56.  
  57. }  
  58. // -->  
  59. </script>  
  60. <!--倒计时Javascript end-->  
  61. <body onload=DigitalTime1()>  
  62. <div id= LiveClock1></div>  
  63.  
  64. </body> 

按小时倒计时

HTML代码:

 

 
  1. <SCRIPT LANGUAGE="JavaScript">  
  2. <!--  
  3. var maxtime = 60*60 //一个小时,按秒计算,自己调整!  
  4. function CountDown(){  
  5. if(maxtime>=0){  
  6. minutes = Math.floor(maxtime/60);  
  7. seconds = Math.floor(maxtime%60);  
  8. msg = "距离结束还有"+minutes+"分"+seconds+"秒";  
  9. document.all["timer"].innerHTML=msg;  
  10. if(maxtime == 5*60)  
  11. alert('注意,还有5分钟!');  
  12. --maxtime;  
  13. }  
  14. else{  
  15. clearInterval(timer);  
  16. alert("时间到,结束!");  
  17. }  
  18. }  
  19. timer = setInterval("CountDown()",1000);  
  20. //-->  
  21. </SCRIPT>  
  22. <div id="timer" style="color:red"></div>  

Javascript倒计时器 - 采用系统时间自校验

这次利用系统时间自校验倒计时, 无需手工调校使得倒计时更为精确, 代码及详细注释如下:

 

 
  1. <span id="clock">00:01:11:00</span>  
  2. <input id="startB" type="button" value="start countdown!" onclick="run()">  
  3. <input id="endB" type="button" value="stop countdown!" onclick="stop()">  
  4. <br>  
  5. <input id="diff" type="text">  
  6. <input id="next" type="text">  
  7. <script language="Javascript">  
  8. var normalelapse = 100;  
  9. var nextelapse = normalelapse;  
  10. var counter;  
  11. var startTime;  
  12. var start = clock.innerText;  
  13. var finish = "00:00:00:00";  
  14. var timer = null;  
  15.  
  16. // 开始运行  
  17. function run() {  
  18. startB.disabled = true;  
  19. endB.disabled = false;  
  20. counter = 0;  
  21. // 初始化开始时间  
  22. startTime = new Date().valueOf();  
  23.  
  24. // nextelapse是定时时间, 初始时为100毫秒  
  25. // 注意setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行  
  26. timer = window.setInterval("onTimer()", nextelapse);  
  27. }  
  28.  
  29. // 停止运行  
  30. function stop() {  
  31. startB.disabled = false;  
  32. endB.disabled = true;  
  33. window.clearTimeout(timer);  
  34. }  
  35.  
  36. window.onload = function() {  
  37. endB.disabled = true;  
  38. }; 
  39.  
  40. // 倒计时函数  
  41. function onTimer()  
  42. {  
  43. if (start == finish)  
  44. {  
  45. window.clearInterval(timer);  
  46. alert("time is up!");  
  47. return;  
  48. }  
  49.  
  50. var hms = new String(start).split(":");  
  51. var ms = new Number(hms[3]);  
  52. var s = new Number(hms[2]);  
  53. var m = new Number(hms[1]);  
  54. var h = new Number(hms[0]);  
  55.  
  56. ms -= 10;  
  57. if (ms < 0)  
  58. {  
  59. ms = 90;  
  60. s -= 1;  
  61. if (s < 0)  
  62. {  
  63. s = 59;  
  64. m -= 1;  
  65. }  
  66.  
  67. if (m < 0)  
  68. {  
  69. m = 59;  
  70. h -= 1;  
  71. }  
  72. }  
  73.  
  74. var ms = ms < 10 ? ("0" + ms) : ms;  
  75. var ss = s < 10 ? ("0" + s) : s;  
  76. var sm = m < 10 ? ("0" + m) : m;  
  77. var sh = h < 10 ? ("0" + h) : h;  
  78.  
  79. start = sh + ":" + sm + ":" + ss + ":" + ms;  
  80. clock.innerText = start;  
  81.  
  82. // 清除上一次的定时器  
  83. window.clearInterval(timer);  
  84.  
  85. // 自校验系统时间得到时间差, 并由此得到下次所启动的新定时器的时间nextelapse  
  86. counter++;  
  87. var counterSecs = counter * 100;  
  88. var elapseSecs = new Date().valueOf() - startTime;  
  89. var diffSecs = counterSecs - elapseSecs;  
  90. nextelapse = normalelapse + diffSecs;  
  91. diff.value = counterSecs + "-" + elapseSecs + "=" + diffSecs;  
  92. next.value = "nextelapse = " + nextelapse;  
  93. if (nextelapse < 0) nextelapse = 0;  
  94.  
  95. // 启动新的定时器  
  96. timer = window.setInterval("onTimer()", nextelapse);  
  97. }  
  98. </script> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选