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 相关文章推荐
js jquery数组介绍
Jul 15 Javascript
从jquery的过滤器.filter()方法想到的
Sep 29 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
基于React实现表单数据的添加和删除详解
Mar 14 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
Jan 09 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
vue resource发送请求的几种方式
Sep 30 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
用Socket发送电子邮件
2006/10/09 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
vue实现文件上传功能
2018/08/13 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
Vue实现简易计算器
2020/02/25 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
使用Scrapy爬取动态数据
2018/10/21 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
法律专业推荐信范文
2013/11/29 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
学校卫生检查制度
2014/02/03 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
李敖北大演讲稿
2014/05/24 职场文书
商场租赁意向书
2014/07/30 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书