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 new一个对象的实质
Jan 07 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
正则 js分转元带千分符号详解
Mar 08 Javascript
js实现五星评价功能
Mar 08 Javascript
详解使用create-react-app快速构建React开发环境
May 16 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
js实现GIF图片的分解和合成
Oct 24 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
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 用数组降低程序的时间复杂度
2009/12/04 PHP
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
js获取url中指定参数值的示例代码
2013/12/14 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python中学习K-Means和图片压缩
2017/11/20 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
Python中单例模式总结
2018/02/20 Python
Python之变量类型和if判断方式
2020/05/05 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
服务之星获奖感言
2014/01/21 职场文书
物业管理专业求职信
2014/06/11 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
贫困生证明范文
2015/06/16 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
python非标准时间的转换
2021/07/25 Python
JavaScript原型链详解
2021/11/07 Javascript
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python