原生js实现节日时间倒计时功能
知识要点
1.实现原理:
用结束时间-当前时间=时间差
当前时间每过1秒时间差自然也就少了1秒
所以要1秒更新一次当前时间就达到了倒计时的效果
2.需要注意的就是时间之间的转换和对得出数值的处理
3.用到的方法:
obj.getTime()//换算成毫秒 Math.floor()//把小数点向下舍入结果取一个整数 50%24//这是对数值求余的方法,意思是假如有50个小时,一天24个小时这个得出的结果就是余数是2
具体的数值的运算处理完整代码里有详细的注释
完整代码
注:代码附带显示当前时间的标准格式以及倒计时天数
<!DOCTYPEhtml> <htmllang="en"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>demo</title> <style> body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;} h1,h2,h3,h4,h5,h6{font-size:100%;} address,cite,dfn,em,var{font-style:normal;} code,kbd,pre,samp{font-family:couriernew,courier,monospace;} ul,ol{list-style:none;} a{text-decoration:none;} a:hover{text-decoration:none;} sup{vertical-align:text-top;} sub{vertical-align:text-bottom;} legend{color:#000;} fieldset,img{border:0;} button,input,select,textarea{font-size:100%;} table{border-collapse:collapse;border-spacing:0;} .clear{clear:both;float:none;height:0;overflow:hidden;} </style> </head> <body> <divid="time"></div> <br/> <divid="day"></div> <br/> <divid="tm"></div> <scripttype="text/javascript"> //在页面加载完后立即执行多个函数完美方案。 functionaddloadEvent(func){ varoldonload=window.onload; if(typeofwindow.onload!="function"){ window.onload=func; } else{ window.onload=function(){ if(oldonload){ oldonload(); } func(); } } } addloadEvent(showTime); addloadEvent(day); addloadEvent(tb); //在页面加载完后立即执行多个函数完美方案over。 //天时秒分倒计时 functiontb(){ varmyDate=newDate();//获取当前时间 varendtime=newDate("2018,1,1");//获取结束时间 //换算成秒小数点向下舍入取整 varltime=Math.floor((endtime.getTime()-myDate.getTime())/1000); //console.log(ltime) //换算成天小数点向下舍入取整 vard=Math.floor(ltime/(24*60*60)); //换算成小时取去掉天数的余数(也就是小时)小数点向下舍入取整 varh=Math.floor(ltime/(60*60)%24); //换算成分钟取去掉小时的余数(也就是分钟)小数点向下舍入取整 varm=Math.floor(ltime/60%60); //换算成分钟取去掉分钟的余数(也就是秒)小数点向下舍入取整 vars=Math.floor(ltime%60); document.getElementById("tm").innerHTML="距2018年元旦还有:"+d+"天"+h+"小时"+m+"分钟"+s+"秒"; if(ltime<=0){ document.getElementById("tm").innerHTML="元旦快乐!"; clearTimeout(tb); } setTimeout(tb,1000); } //当秒数为个位数时前面+字符串0 functioncheckTime(i){ returni<10?"0"+i:""+i; } //当前时间标准格式 functionshowTime(){ varmyDate=newDate();//获取当前时间 varyear=myDate.getFullYear();//获取年份 varmonth=myDate.getMonth()+1;//获取月份是0-11的数字所以+1 vardate=myDate.getDate();//日 varday=myDate.getDay();// varh=myDate.getHours();//小时 varm=myDate.getMinutes();//分钟 vars=myDate.getSeconds();//秒 checkTime(m); checkTime(s); //console.log(day) varweek="日一二三四五六".charAt(day); document.getElementById("time").innerHTML=year+"年"+month+"月"+date+"日"+"星期"+week+h+":"+m+":"+s; setTimeout(showTime,1000); } //倒计时天数计算 functionday(){ varmyDate=newDate();//获取当前时间 varendtime=newDate("2018,1,1");//获取结束时间 //先换算成毫秒再相减就是时间差,再除以一天的毫秒数结果是带有小数点的,用math方法进一位取整 varltime=Math.ceil((endtime.getTime()-myDate.getTime())/(24*60*60*1000)); document.getElementById("day").innerHTML="距2018年元旦还有:"+ltime+"天"; } </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!