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学习笔记 操作jQuery对象 文档处理
Sep 19 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
JavaScript实现表格排序方法
Jun 14 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
微信小程序之小豆瓣图书实例
Nov 30 Javascript
JavaScript实现简单的树形菜单效果
Jun 23 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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的图形函数中显示汉字
2006/10/09 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python中的整除和取模实例
2020/06/03 Python
python 8种必备的gui库
2020/08/27 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
机械专业应届生求职信
2013/12/12 职场文书
物流仓管员工作职责
2014/01/06 职场文书
青年创业培训欢迎词
2014/01/10 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
活动总结报告范文
2014/05/04 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
电影开国大典观后感
2015/06/04 职场文书
商务信函英语问候语
2015/11/10 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL