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 相关文章推荐
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
详解Angular5 服务端渲染实战
Jan 04 Javascript
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
深入了解JavaScript 防抖和节流
Sep 12 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 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的ASP防火墙
2006/10/09 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
phpwind放自动注册方法
2006/12/02 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
手机端转换rem适应
2017/04/01 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python中join函数简单代码示例
2018/01/09 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python输出决策树图形的例子
2019/08/09 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
python 利用zmail库发送邮件
2020/09/11 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
2014年庆元旦活动方案
2014/02/15 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
招标授权委托书样本
2014/09/23 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
如何使用php生成zip压缩包
2021/04/21 PHP
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS