今天翻出达内教程做的笔记(上学期末学完的),看到Date对象,突然想起一年前写的那个倒计时,再次翻看自己一年前在此写的博文“倒计时”,发现居然写了170行代码,还标记了一个原创,真个是不知者无畏,那时只知道一个new Date(),汗颜!明明有现成的方法,居然绕了那么个大圈,又是算闰年,又是算当前年什么的,真是佩服自己,想想,原创也不无道理,估计Date对象的方法就是这样写的,现在发现自己还有写方法的才,而不仅仅是用方法的料,哈哈!
借此,标注下学习js的历程。
分享新倒计时,直接使用Date对象方法,代码少了一倍!
function toDouble(num){ if(num<10){ return '0'+num; }else{ return ''+num; } } function toFour(num){ if(num<1000&&num>=100){ return '0'+num; }else if(num<100){ return '00'+num; }else{ return ''+num; } } window.onload=function(){ var aImgs01=document.getElementById("today").getElementsByTagName('img'); var aImgs02=document.getElementById("target").getElementsByTagName('img'); function update(){ var oDate=new Date(); var iTarget=new Date('2020/02/20'); var str=''+oDate.getFullYear()+toDouble(oDate.getMonth()+1)+toDouble(oDate.getDate())+toDouble(oDate.getHours())+toDouble(oDate.getMinutes())+toDouble(oDate.getSeconds()); //倒计时 var display_days=parseInt( (iTarget-oDate)/(1000*60*60*24) ); var display_hours=parseInt( ((iTarget-oDate)%(1000*60*60*24))*24 ); var display_mintues=parseInt( (((iTarget-oDate)%(1000*60*60*24))*24-display_hours)*60 ); var display_seconds=parseInt( ((((iTarget-oDate)%(1000*60*60*24))*24-display_hours)*60-display_mintues)*60 );
var str2=''+toFour(display_days)+toDouble(display_hours)+toDouble(display_mintues)+toDouble(display_seconds); //今天的日期显示,晚上18点到早上8点显示蓝色,8点到12点绿色,其他红色 var i=0; for(i=0;i<aImgs01.length;i++) { if(display_hours<8 || display_hours>18){ aImgs01[i].src="/imgs/"+str.charAt(i)+'.gif'; }else if(display_hours>=8 && display_hours<=12){ aImgs01[i].src="/imgs/"+str.charAt(i)+'_A.gif'; }else{ aImgs01[i].src="/imgs/"+str.charAt(i)+'_p.gif'; } } //倒计时显示,少于100天时,天数红色 var s_days=toFour(display_days); var i=0; for(i=0;i<aImgs02.length;i++){ aImgs02[i].src="/imgs/"+str2.charAt(i)+'_A.gif'; if(s_days<=100){ var j=0; for(j=0;j<4;j++){ aImgs02[j].src="/imgs/"+str2.charAt(j)+'_p.gif'; } } } } setInterval(update,1000); update(); } |