JS实现根据用户输入分钟进行倒计时功能


Posted in Javascript onNovember 14, 2016

废话不多说了,直接给大家贴代码了。具体代码如下所示:

其实这倒计时之前有接触过很多,只是用的都是别人的源码。
应项目需求,终于认真一回,把一个自己看似很简单的问题,终于耗上了跨度一个星期的时间,才弄出来。
源码直接复制黏贴可用。

冗余版+简化版。

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
  <title></title> 
 </head> <body> 
  <script type="text/javascript"> 
    var createTime = '2016-11-14 10:20:00';//开始时间 
    var limitTimes = 10;//时间长度 
    // 倒计时 入口 
    countdowns = window.setInterval(function(){ 
      var arr = cutDoowns(limitTimes,createTime); 
      document.write(formatDate(arr[0])+':'+formatDate(arr[1])+':'+formatDate(arr[2])+'</br>'); 
      if(arr[2]){ 
        document.write('时间到!'); 
      } 
    },1000); 
 
    /* 
      s,10分钟后的具体日期: 
      date,开始时间 
      然后转化成毫秒比较,所得的差值化成分秒,就是倒计时的分秒。 
     */ 
    function cutDoowns(s,date){ 
      console.log(''); 
      var flag = false; 
      var arr = [];//arr[0]:分,arr[1]:秒,arr[2]:返回boolean 
      var now = new Date();//当前时间 
      var now1 = new Date(date);//开始时间 
      console.log('开始时间 now1: '+now1); 
      now1.setMinutes(now1.getMinutes()+s);//10分钟后的时间 
      console.log('当前时间 now :'+now); 
      console.log('10分钟时 now1:'+now1); 
 
      // 转化成年月日 时分秒 格式 
      var n = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDay()+' '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds(); 
      var n1 = now1.getFullYear()+'/'+(now1.getMonth()+1)+'/'+now1.getDay()+' '+now1.getHours()+':'+now1.getMinutes()+':'+now1.getSeconds(); 
      // 日期转化成毫秒 
      var time1 = (new Date(n)).getTime(); 
      var time2 = (new Date(n1)).getTime(); 
      // 毫秒转日期格式 
      var time11 = new Date(time1); 
      var time21 = new Date(time2); 
      console.log('当前时间:'+n+',转化成毫秒:'+time1+',time11:'+time11); 
      console.log('10分钟时:'+n1+',转化成毫秒:'+time2+',time21:'+time21); 
 
      var surplusSec = time2-time1;//距离解锁剩余毫秒 
 
      if(surplusSec<=0){ 
        clearInterval(countdowns); 
        flag = true; 
        return arr = [00,00,flag]; 
      } 
 
      var minute = Math.floor(surplusSec/1000/60);//分钟 
      var second = Math.floor((surplusSec-minute*60*1000)/1000);//剩余秒数 
      console.log('剩余时间,minute: '+minute+',second: '+second+',surplusSec:'+surplusSec); 
      // var second = Math.round(surplusTimes);//秒数 
      console.log('剩余时间,minute: '+minute+',second: '+second+',surplusSec:'+surplusSec); 
 
      arr = [minute,second,flag]; 
      return arr; 
    } 
 
    //格式化日期:把单字符转成双字符 
    function formatDate(n){ 
      n = n.toString(); 
      // console.log(n); 
      if(n.length<=1){ 
        n = '0'+n; 
      } 
      // console.log(n); 
      return n; 
    } 
  </script> 
  </body> 
</html>

简化版本:

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <title>打开调试工具,看效果!</title> 
  </head> 
  <body> 
 
  <script type="text/javascript"> 
    /* 
      打开调试工具,看效果! 
      思路: 
      1.设置一个倒计时的时间长度; 
      2.设置开始时间和当前时间; 
      3.结束时间是 开始时间+倒计时间; 
      4.结束毫秒-开始毫秒=剩余倒计时间。 
     */ 
     
    // 准备 
    var countdownMinute = 10;//10分钟倒计时 
    var startTimes = new Date('2016-11-16 15:55');//开始时间 new Date('2016-11-16 15:21'); 
    var endTimes = new Date(startTimes.setMinutes(startTimes.getMinutes()+countdownMinute));//结束时间 
    var curTimes = new Date();//当前时间 
    var surplusTimes = endTimes.getTime()/1000 - curTimes.getTime()/1000;//结束毫秒-开始毫秒=剩余倒计时间 
     
    // 进入倒计时 
    countdowns = window.setInterval(function(){ 
      surplusTimes--; 
      var minu = Math.floor(surplusTimes/60); 
      var secd = Math.round(surplusTimes%60); 
      console.log(minu+':'+secd); 
      if(surplusTimes<=0){ 
        console.log('时间到!'); 
        clearInterval(countdowns); 
      } 
    },1000); 
 
 
  </script> 
  </body> 
</html>

以上所述是小编给大家介绍的JS实现根据用户输入分钟进行倒计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
FormValidate 表单验证功能代码更新并提供下载
Aug 23 Javascript
移动节点的jquery代码
Jan 13 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
localStorage实现便签小程序
Nov 28 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
Jan 16 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
vue配置nprogress实现页面顶部进度条
Sep 21 Javascript
js调用屏幕宽度的简单方法
Nov 14 #Javascript
jquery心形点赞关注效果的简单实现
Nov 14 #Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 #Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 #Javascript
Node.js中路径处理模块path详解
Nov 14 #Javascript
JavaScript队列、优先队列与循环队列
Nov 14 #Javascript
JavaScript中setTimeout的那些事儿
Nov 14 #Javascript
You might like
初级的用php写的采集程序
2007/03/16 PHP
php whois查询API制作方法
2011/06/23 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python爬虫实例详解
2018/06/19 Python
python numpy元素的区间查找方法
2018/11/14 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
Java如何读取CLOB字段
2013/10/10 面试题
岗位职责说明书模板
2014/07/30 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python