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查看对象功能代码
Apr 25 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
js简单实现删除记录时的提示效果
Dec 05 Javascript
jQuery写fadeTo示例代码
Feb 21 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
AngularJs bootstrap搭载前台框架——基础页面
Sep 01 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
a标签调用js的方法总结
Sep 05 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 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 $_FILES函数详解
2011/03/09 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
php实现登陆模块功能示例
2016/10/20 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
Using the TextRange Object
2006/10/14 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
Python中实现switch功能实例解析
2018/01/11 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Python中的With语句的使用及原理
2020/07/29 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
英国医生在线预约:Top Doctors
2019/10/30 全球购物
法警的竞聘演讲稿
2014/01/02 职场文书
演讲比赛策划方案
2014/06/11 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android