首 页 行业热点 新车 试驾评测 养车用车 车型库
当前位置:首页JS实现根据用户输入分钟进行倒计时功能

JS实现根据用户输入分钟进行倒计时功能

2020-11-27 来源:好土汽车网
导读 JS实现根据用户输入分钟进行倒计时功能:废话不多说了,直接给大家贴代码了。具体代码如下所示:其实这倒计时之前有接触过很多,只是用的都是别人的源码。应项目需求,终于认真一回,把一个自己看似很简单的问题,终于耗上了跨度一个星期的时间,才弄出来。源码直接复制黏贴可用。冗余版+简化版。&l

废话不多说了,直接给大家贴代码了。具体代码如下所示:

其实这倒计时之前有接触过很多,只是用的都是别人的源码。
应项目需求,终于认真一回,把一个自己看似很简单的问题,终于耗上了跨度一个星期的时间,才弄出来。
源码直接复制黏贴可用。

冗余版+简化版。

<!DOCTYPE html> 
<html> 
 <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> 
 <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>
显示全文