js精准的倒计时函数分享

 更新时间:2016年06月29日 16:32:12   作者:羯瑞。♑  
这篇文章主要为大家分享了js实现精准的倒计时函数,如何实现倒计时模块,感兴趣的小伙伴们可以参考一下

先看看倒计时效果:

 

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>倒计时函数</title>
 <script>
 var timer=(function(){
 return function (json){
 if(json.currentTime){
 var now=new Date();
 var year=now.getFullYear();//返回年份(4位数字)
 var month=now.getMonth()+1;//返回月份(0-11,所以+1)
 var day=now.getDate();//返回某天(1-31)
 var h=now.getHours();//返回小时(0-23)
 var m=now.getMinutes();//返回分钟(0-59)
 var s=now.getSeconds();//返回秒数(0-59)
 //补O
 m=m<10?'0'+m:m;
 s=s<10?'0'+s:s;
 var weekday=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
 document.getElementById(json.objId).innerHTML=year+'年'+month+'月'+day+'日'+weekday[now.getDay()]+' '+h+':'+m+':'+s;
 setTimeout(function(){timer(json)},1000);
 }else{
 var endtime=new Date(json.endtime);//结束时间
 var nowtime = new Date();//当前时间
 var lefttime=parseInt((endtime.getTime()-nowtime.getTime())/1000); //计算差的秒数
 //一天24小时 一小时60分钟 一分钟60秒
 d=parseInt(lefttime/3600/24);
 h=parseInt((lefttime/3600)%24);
 m=parseInt((lefttime/60)%60);
 s=parseInt(lefttime%60);
 document.getElementById(json.objId).innerHTML=d+"天"+h+"小时"+m+"分"+s+"秒";
 if(lefttime>0){setTimeout(function(){timer(json)},1000);}
 }
 }
 })()
 
 window.onload=function(){
 timer({
 currentTime:true,
 objId:'thisTime'
 })
 timer({
 objId:'countDown',
 endtime:"2016/9/1,18:00"
 })
 }
 </script>
</head>
<body>
 <b>当前时间:</b> <span id="thisTime"></span><br/><br/>
 <b>距离2016/9/1 18:00还有:</b> <span id="countDown"></span>
</body>
</html> 

注意点:
 1.有两个功能:当前时间和倒计时,带的参数不同
 2.主要是利用js返回的数据,要注意月份,某天,小时,分钟,返回的数值区间
 3.星期的我这边用数组处理了
 4.倒计时主要是计算时间差,结束时间减去当前时间的秒数,在进行数学计算
 5.这里用了闭包,防止多个定时器冲突
 6.这边的代码比较易懂,牛人可以改造成插件,还望分享分享。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 通过说明与示例了解js五种设计模式

    通过说明与示例了解js五种设计模式

    这篇文章主要介绍了通过说明与示例了解js五种设计模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • js通过元素class名字获取元素集合的具体实现

    js通过元素class名字获取元素集合的具体实现

    获取元素集合的方法有很多,接下来为大家介绍喜爱使用js通过元素class名字获取元素集合的方法
    2014-01-01
  • javascript网页随机点名实现过程解析

    javascript网页随机点名实现过程解析

    这篇文章主要介绍了javascript实现网页随机变色及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • JavaScript 进度条实现代码(Firefox等相似浏览器下不支持)

    JavaScript 进度条实现代码(Firefox等相似浏览器下不支持)

    JavaScript实现的进度条,可惜在Firefox等相似浏览器下不支持(远程)
    2009-07-07
  • TS 中 never,void,unknown类型详解

    TS 中 never,void,unknown类型详解

    这篇文章主要介绍了TS 中 never,void,unknown类型详解,never 类型是 TypeScript 中的底层类型,unknown是TypeScript中比较特殊的一种类型,它用于描述类型不确定的变量,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 详解TypeScript中模块化开发指南

    详解TypeScript中模块化开发指南

    在编程中,模块是指将相关的代码封装在一起,形成一个独立的单元,在这篇文章中,我们将深入探讨在TypeScript中如何定义、导入和导出模块,感兴趣的可以了解一下
    2023-06-06
  • JavaScript 继承的实现

    JavaScript 继承的实现

    正因为JavaScript本身没有完整的类和继承的实现,并且我们也看到通过手工实现的方式存在很多问题, 因此对于这个富有挑战性的任务网上已经有很多实现了
    2009-07-07
  • 前端常用的js函数方法

    前端常用的js函数方法

    这篇文章主要给大家分享的是常用的js函数的方法,告别搜索引擎的帮助,提高你的开发效率,,需要的朋友可以参考一下,希望对你的学习有所帮助
    2021-12-12
  • js之点击 超连接,提示一个层.点击空白层消失

    js之点击 超连接,提示一个层.点击空白层消失

    最近写一个功能,需要用到点击空白层就让指定的一个层消失,这里简单介绍下实现方法,需要的朋友可以参考下
    2007-05-05
  • uniapp中table表格设置宽度无效的原因以及解决方法

    uniapp中table表格设置宽度无效的原因以及解决方法

    项目中遇到table表格单元格不整齐、错位等情况,下面这篇文章主要给大家介绍了关于uniapp中table表格设置宽度无效的原因以及解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04

最新评论