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 相关文章推荐
javascript之可拖动的iframe效果代码
Aug 01 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
使用JavaScript获取地址栏参数的方法
Dec 19 Javascript
js获取form的方法
May 06 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
Node.js连接MongoDB数据库产生的问题
Feb 08 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
vue组件tabbar使用方法详解
Nov 06 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里的JS打印函数
2006/10/09 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python妙用之编码的转换详解
2017/04/21 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
学生自我鉴定
2013/12/18 职场文书
公司门卫管理制度
2014/02/01 职场文书
教研处工作方案
2014/05/26 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
2019思想汇报范文
2019/05/21 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
浅析JavaScript中的变量提升
2022/06/01 Javascript