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 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
javascript中FOREACH数组方法使用示例
Mar 01 Javascript
浅析JavaScript回调函数应用
May 22 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
Js经典案例的实例代码
May 10 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
php Session无效分析资料整理
2016/11/29 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
追悼会上的答谢词
2014/01/10 职场文书
村干部培训方案
2014/05/02 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers