javascript 时间倒计时
新加入一个项目的集中开发,遇到一个需要倒计时的需求,经过测试,有以下几种方案,分享出来:
方案一:
页面Html:
- <span style="font-size:18px;"><html>
- <head>
- <meta charset="utf-8">
- </head>
- <body onload="timeCounter('timeCounter')">
- <p id="timeCounter">2:00:00</p>
- </body>
- </html></span>
JavaScript代码:
- <span style="font-size:18px;"><script>
- var timeCounter = (function () {
- var int;
- var timeID = SumTime().split(":");
- var total =parseInt(timeID[0] * 3600) + parseInt(timeID[1] * 60) + parseInt(timeID[2]);//将时间换算成秒数
- return function (elemID) {
- obj = document.getElementById(elemID);
- var s = (total % 60) < 10 ? ('0' + total % 60) : total % 60;//秒
- var h = total / 3600 < 10 ? ('0' + parseInt(total / 3600)) : parseInt(total / 3600);//时
- var m = (total - h * 3600) / 60 < 10 ? ('0' + parseInt((total - h * 3600) / 60)) : parseInt((total - h * 3600) / 60);//分
- obj.innerHTML = h + ' : ' + m + ' : ' + s;
- total--;
- int = setTimeout("timeCounter('" + elemID + "')", 1000);
- if (total < 0) clearTimeout(int);
- }
- })()
- function SumTime() {
- var ap = new Date().toLocaleTimeString().substring(0, 2);
- var startTime = new Date().toLocaleTimeString().substring(2);
- var endTime = "15:00:00";
- var start = new Array;
- var end = new Array;
- start = startTime.split(":");
- end = endTime.split(":");
- var hh = end[0] - start[0];
- if (ap == "下午" || ap=="PM") { hh -= 12;}
- if (end[1] < start[1]) {
- hh -= 1;
- var mm = end[1] + 60 - start[1];
- } else {
- var mm = end[1] - start[1];
- }
- if (end[2] < start[2]) {
- mm -= 1;
- var ss = end[2] + 60 - start[2];
- } else {
- var ss = end[2] - start[2];
- }
- var diffTime = hh + ":" + mm + ":" + ss;
- return diffTime;
- }
- </script></span>
方案二:
- <span style="font-size:18px;"><meta charset="utf-8">
- <div>
- <span id='daya'></span>天
- <span id='hoursa'></span>小时
- <span id='minua'></span>分
- <span id='secoa'></span>秒
- </div></span>
js:
- <span style="font-size:18px;"><script type="text/javascript">
- var a=7200; //以毫秒为单位
- 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></span>
方案三:
- <span style="font-size:18px;"><script>
- var second = 7200; // 剩余秒数
- // 写一个方法,将秒数专为天数
- var toDays = function(){
- var s = second % 60; // 秒
- var mi = (second - s) / 60 % 60; // 分钟
- var h = ((second - s) / 60 - mi ) / 60 % 24; // 小时
- var d = (((second - s) / 60 - mi ) / 60 - h ) / 24 // 天
- return d + "天" + h + "小时" + mi + "分钟" + s + "秒";
- }
- //定时器
- window.setInterval(function(){
- second --;
- document.getElementById("showTimes").innerHTML = toDays ();
- }, 1000);
- </script>
- <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 时间倒计时的更多相关文章
- javascript 时间倒计时效果
<div id="divdown1"></div> <script language="javascript" type=&quo ...
- 原生JavaScript时间倒计时的方法
这个思路是来源用%的方法来做的: 以前用%做过转秒的 现在用来做倒计时方法: 需要用到的方法是getTime:获取距离1970年1月1日午夜00:00之间的毫秒差: var targetTime=ne ...
- js时间倒计时
看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...
- javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决
javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...
- 用Javascript 实现倒计时
用Javascript 实现倒计时<!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- Java 获取当前时间及实现时间倒计时功能
引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些固定的时间倒计时,时间到后做一些什么事情的业务 .接下来咱们就具体看看代码是怎么实现的: <%@ page lan ...
- javascript 时间操作
javascript时间函数 javascript提供了Date对象来进行时间和日期的计算.Date对象有多种构造函数: 1.dateObj=new Date() //当前时间 2.dateObj=n ...
- 第一百零四节,JavaScript时间与日期
JavaScript时间与日期 学习要点: 1.Date类型 2.通用的方法 3.格式化方法 4.组件方法 ECMAScript提供了Date类型来处理时间和日期.Date类型内置一系列获取和设置日期 ...
- 原生js 当前时间 倒计时代码
源:https://www.oschina.net/code/snippet_2318153_54763 <!DOCTYPE html> <html> <head> ...
随机推荐
- “假学习“&”真学习“?(摘)
什么叫做“假学习”? 一.看书 买一堆书,有空看看.看书,这是典型的假学习.看书看不懂还在看,就是假学习,欺骗自己,安慰自己正在学习而已.专业书都写得很好,但大都是写给已经懂的人看的.看书的最大作用就 ...
- 【leetcode】Binary Tree Zigzag Level Order Traversal (middle)
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- URAL 2019 Pair: normal and paranormal (贪心) -GDUT联合第七场
比赛题目链接 题意:有n个人每人拿着一把枪想要杀死n个怪兽,大写字母代表人,小写字母代表怪兽.A只能杀死a,B只能杀死b,如题目中的图所示,枪的弹道不能交叉.人和怪兽的编号分别是1到n,问是否存在能全 ...
- [Android Pro] Android 性能分析工具dumpsys的使用
reference to : http://www.open-open.com/lib/view/open1405061994872.html Android提供的dumpsys工具可以用于查看感兴趣 ...
- August 10th, 2016, Week 33rd, Wednesday
The degree of loving is measured by the degree of giving. 爱的深浅是用给与的多少来衡量的. Some say that if you love ...
- 让chrome的控制台更高大上(装B用)
作为一名屌丝前端程序员,在装B的道路上是越走越远了!废话不多说,直接先上几张图:我的Element是这样的: 我的console是这个样子的: 我的Timeline是这个样子的: ---------- ...
- 多线程编程4 - NSOperationQueue
一.简介 一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的.也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步 ...
- *** Assertion failure in -[UIApplication _runWithMainScene:transitionContext iOS9.1闪退问题解决
错误原因在于 AppDelegate 中 didFinishLaunchingWithOptions 结束前 未定义 rootViewController,Xcode7规定必须要有rootViewCo ...
- Html和CSS的关系
1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2. CSS样式是表现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片. ...
- CLR via C#(05)- 访问限定、数据成员
今天跟大家分享一下关于访问限定和数据成员的知识.主要包括以下两点: Abstract, sealed, virtual, new, override怎么用? Const 和 readonly好像都表示 ...