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实现根据用户输入分钟进行倒计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!