JS实现根据用户输入分钟进行倒计时功能
废话不多说了,直接给大家贴代码了。具体代码如下所示:
其实这倒计时之前有接触过很多,只是用的都是别人的源码。
应项目需求,终于认真一回,把一个自己看似很简单的问题,终于耗上了跨度一个星期的时间,才弄出来。
源码直接复制黏贴可用。
冗余版+简化版。
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title></title> </head><body> <scripttype="text/javascript"> varcreateTime='2016-11-1410:20:00';//开始时间 varlimitTimes=10;//时间长度 //倒计时入口 countdowns=window.setInterval(function(){ vararr=cutDoowns(limitTimes,createTime); document.write(formatDate(arr[0])+':'+formatDate(arr[1])+':'+formatDate(arr[2])+'</br>'); if(arr[2]){ document.write('时间到!'); } },1000); /* s,10分钟后的具体日期: date,开始时间 然后转化成毫秒比较,所得的差值化成分秒,就是倒计时的分秒。 */ functioncutDoowns(s,date){ console.log(''); varflag=false; vararr=[];//arr[0]:分,arr[1]:秒,arr[2]:返回boolean varnow=newDate();//当前时间 varnow1=newDate(date);//开始时间 console.log('开始时间now1:'+now1); now1.setMinutes(now1.getMinutes()+s);//10分钟后的时间 console.log('当前时间now:'+now); console.log('10分钟时now1:'+now1); //转化成年月日时分秒格式 varn=now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDay()+''+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds(); varn1=now1.getFullYear()+'/'+(now1.getMonth()+1)+'/'+now1.getDay()+''+now1.getHours()+':'+now1.getMinutes()+':'+now1.getSeconds(); //日期转化成毫秒 vartime1=(newDate(n)).getTime(); vartime2=(newDate(n1)).getTime(); //毫秒转日期格式 vartime11=newDate(time1); vartime21=newDate(time2); console.log('当前时间:'+n+',转化成毫秒:'+time1+',time11:'+time11); console.log('10分钟时:'+n1+',转化成毫秒:'+time2+',time21:'+time21); varsurplusSec=time2-time1;//距离解锁剩余毫秒 if(surplusSec<=0){ clearInterval(countdowns); flag=true; returnarr=[00,00,flag]; } varminute=Math.floor(surplusSec/1000/60);//分钟 varsecond=Math.floor((surplusSec-minute*60*1000)/1000);//剩余秒数 console.log('剩余时间,minute:'+minute+',second:'+second+',surplusSec:'+surplusSec); //varsecond=Math.round(surplusTimes);//秒数 console.log('剩余时间,minute:'+minute+',second:'+second+',surplusSec:'+surplusSec); arr=[minute,second,flag]; returnarr; } //格式化日期:把单字符转成双字符 functionformatDate(n){ n=n.toString(); //console.log(n); if(n.length<=1){ n='0'+n; } //console.log(n); returnn; } </script> </body> </html>
简化版本:
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>打开调试工具,看效果!</title> </head> <body> <scripttype="text/javascript"> /* 打开调试工具,看效果! 思路: 1.设置一个倒计时的时间长度; 2.设置开始时间和当前时间; 3.结束时间是开始时间+倒计时间; 4.结束毫秒-开始毫秒=剩余倒计时间。 */ //准备 varcountdownMinute=10;//10分钟倒计时 varstartTimes=newDate('2016-11-1615:55');//开始时间newDate('2016-11-1615:21'); varendTimes=newDate(startTimes.setMinutes(startTimes.getMinutes()+countdownMinute));//结束时间 varcurTimes=newDate();//当前时间 varsurplusTimes=endTimes.getTime()/1000-curTimes.getTime()/1000;//结束毫秒-开始毫秒=剩余倒计时间 //进入倒计时 countdowns=window.setInterval(function(){ surplusTimes--; varminu=Math.floor(surplusTimes/60); varsecd=Math.round(surplusTimes%60); console.log(minu+':'+secd); if(surplusTimes<=0){ console.log('时间到!'); clearInterval(countdowns); } },1000); </script> </body> </html>
以上所述是小编给大家介绍的JS实现根据用户输入分钟进行倒计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!