新加入一个项目的集中开发,遇到一个需要倒计时的需求,经过测试,有以下几种方案,分享出来:

方案一:

页面Html:

  1. <span style="font-size:18px;"><html>
  2. <head>
  3. <meta charset="utf-8">
  4. </head>
  5. <body onload="timeCounter('timeCounter')">
  6. <p id="timeCounter">2:00:00</p>
  7. </body>
  8. </html></span>

JavaScript代码:

  1. <span style="font-size:18px;"><script>
  2. var timeCounter = (function () {
  3. var int;
  4. var timeID = SumTime().split(":");
  5. var total =parseInt(timeID[0] * 3600) + parseInt(timeID[1] * 60) + parseInt(timeID[2]);//将时间换算成秒数
  6. return function (elemID) {
  7. obj = document.getElementById(elemID);
  8. var s = (total % 60) < 10 ? ('0' + total % 60) : total % 60;//秒
  9. var h = total / 3600 < 10 ? ('0' + parseInt(total / 3600)) : parseInt(total / 3600);//时
  10. var m = (total - h * 3600) / 60 < 10 ? ('0' + parseInt((total - h * 3600) / 60)) : parseInt((total - h * 3600) / 60);//分
  11. obj.innerHTML = h + ' : ' + m + ' : ' + s;
  12. total--;
  13. int = setTimeout("timeCounter('" + elemID + "')", 1000);
  14. if (total < 0) clearTimeout(int);
  15. }
  16. })()
  17. function SumTime() {
  18. var ap = new Date().toLocaleTimeString().substring(0, 2);
  19. var startTime = new Date().toLocaleTimeString().substring(2);
  20. var endTime = "15:00:00";
  21. var start = new Array;
  22. var end = new Array;
  23. start = startTime.split(":");
  24. end = endTime.split(":");
  25. var hh = end[0] - start[0];
  26. if (ap == "下午" || ap=="PM") { hh -= 12;}
  27. if (end[1] < start[1]) {
  28. hh -= 1;
  29. var mm = end[1] + 60 - start[1];
  30. } else {
  31. var mm = end[1] - start[1];
  32. }
  33. if (end[2] < start[2]) {
  34. mm -= 1;
  35. var ss = end[2] + 60 - start[2];
  36. } else {
  37. var ss = end[2] - start[2];
  38. }
  39. var diffTime = hh + ":" + mm + ":" + ss;
  40. return diffTime;
  41. }
  42. </script></span>

方案二:

  1. <span style="font-size:18px;"><meta charset="utf-8">
  2. <div>
  3. <span id='daya'></span>天
  4. <span id='hoursa'></span>小时
  5. <span id='minua'></span>分
  6. <span id='secoa'></span>秒
  7. </div></span>

js:

  1. <span style="font-size:18px;"><script type="text/javascript">
  2. var a=7200;         //以毫秒为单位
  3. function fomtime()
  4. {
  5. a=a-1000;
  6. var b=new Date();
  7. b.setTime(0);
  8. var c=new Date();
  9. c.setTime(a);
  10. var day1=b.getDate();        //为方便调用,把天数、小时等单独定义
  11. var hours1=b.getHours();
  12. var minu1=b.getMinutes();
  13. var seco1=b.getSeconds();
  14. var day2=c.getDate();
  15. var hours2=c.getHours();
  16. var minu2=c.getMinutes();
  17. var seco2=c.getSeconds();
  18. var day=day2-day1;
  19. var hours=hours2-hours1;
  20. var minu=minu2-minu1;
  21. var seco=seco2-seco1;
  22. document.getElementById('daya').innerHTML=day;
  23. document.getElementById('hoursa').innerHTML=hours;
  24. document.getElementById('minua').innerHTML=minu;
  25. document.getElementById('secoa').innerHTML=seco;
  26. setTimeout("fomtime()",1000);
  27. }
  28. fomtime();
  29. </script></span>

方案三:

  1. <span style="font-size:18px;"><script>
  2. var second = 7200; // 剩余秒数
  3. // 写一个方法,将秒数专为天数
  4. var toDays = function(){
  5. var s = second % 60; // 秒
  6. var mi = (second - s) / 60 % 60; // 分钟
  7. var h =  ((second - s) / 60 - mi ) / 60 % 24; // 小时
  8. var d =  (((second - s) / 60 - mi ) / 60 - h ) / 24 // 天
  9. return  d + "天" + h + "小时" + mi + "分钟" + s + "秒";
  10. }
  11. //定时器
  12. window.setInterval(function(){
  13. second --;
  14. document.getElementById("showTimes").innerHTML = toDays ();
  15. }, 1000);
  16. </script>
  17. <p id="<span margin: 0px; padding: 0px; border: currentColor; color: black; background-color: inherit;">font-family: Arial, Helvetica, sans-serif;">timeCounter</span>"></p></span>

总结:

总结一下上面的集中方法,其实就是一种方法:将时间差转化为以秒为单位的数,然后写定时器美妙执行一次时间变化,只是这个变化的方式稍有不同,但是都离不开SetTimeout延时这个方法,另一个就是window的setInterval设置时间间隔,思想是一样的。

javascript 时间倒计时的更多相关文章

  1. javascript 时间倒计时效果

    <div id="divdown1"></div> <script language="javascript" type=&quo ...

  2. 原生JavaScript时间倒计时的方法

    这个思路是来源用%的方法来做的: 以前用%做过转秒的 现在用来做倒计时方法: 需要用到的方法是getTime:获取距离1970年1月1日午夜00:00之间的毫秒差: var targetTime=ne ...

  3. js时间倒计时

    看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...

  4. javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决

    javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...

  5. 用Javascript 实现倒计时

    用Javascript 实现倒计时<!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  6. Java 获取当前时间及实现时间倒计时功能

    引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些固定的时间倒计时,时间到后做一些什么事情的业务 .接下来咱们就具体看看代码是怎么实现的: <%@ page lan ...

  7. javascript 时间操作

    javascript时间函数 javascript提供了Date对象来进行时间和日期的计算.Date对象有多种构造函数: 1.dateObj=new Date() //当前时间 2.dateObj=n ...

  8. 第一百零四节,JavaScript时间与日期

    JavaScript时间与日期 学习要点: 1.Date类型 2.通用的方法 3.格式化方法 4.组件方法 ECMAScript提供了Date类型来处理时间和日期.Date类型内置一系列获取和设置日期 ...

  9. 原生js 当前时间 倒计时代码

    源:https://www.oschina.net/code/snippet_2318153_54763 <!DOCTYPE html> <html> <head> ...

随机推荐

  1. tcpdump for android L 5.x with pie support

    由于使用了NDK编译的可执行文件在应用中调用,在4.4及之前的版本上一直没出问题. 最近由于要测试在Android L上的运行情况发现,当运行该可执行文件时,报如下错误: error: only po ...

  2. ffmpeg-20160629-git-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  3. 1.openstack之mitaka搭建基本配置

    介绍:本次案列为基本的三节点部署 注:搭建所需要的包可以联系QQ:22102107获取 一:网络: 1.管理网络:192.168.11.0/24 2.数据网络:1.1.1.0/24 注:每个节点两个网 ...

  4. 【编程题目】有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A、B、C 三人额头上贴

    第 22 题(推理):有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A.B.C 三人额头上贴任意两张牌,A.B.C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什 ...

  5. HDU 4387 Stone Game (博弈)

    题目:传送门. 题意:长度为N的格子,Alice和Bob各占了最左边以及最右边K个格子,每回合每人可以选择一个棋子往对面最近的一个空格移动.最先不能移动的人获得胜利. 题解: k=1时 很容易看出,n ...

  6. ArtDialog文档

    http://www.planeart.cn/demo/artDialog/_doc/API.html#API

  7. PHP安全编程:不要让不相关的人看到报错信息

    没有不会犯错的开发者,PHP的错误报告功 能可以协助你确认和定位这些错误,可以提供的这些错误的详细描述,但如果被恶意攻击者看到,这就不妙了.不能让大众看到报错信息,这一点很重要.做到这一 点很容易,只 ...

  8. 3ds max输出图片

    通过渲染菜单调出改窗口,然后调整成这种模式,就能渲染出这种效果的图. 可以调背景色: 全局照明:染色,这个控制的是渲染物体的颜色

  9. python eval和literal_eval

    eval是python中一个相当智能的函数,把参数当成表达式,进行最大限度的解析, 比如: a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" b ...

  10. android 开发赚钱

    原 android 开发赚钱 谁带我去看看世界 发布时间: 2015/06/09 12:05 阅读: 1589 收藏: 37 点赞: 2 评论: 5 开发android也有一年左右了,利用业余时间陆续 ...