原生js實現節日時間倒計時功能,js節日倒計時

來源:互聯網
上載者:User

原生js實現節日時間倒計時功能,js節日倒計時

知識要點

1.實現原理:

用結束時間-目前時間=時間差

目前時間每過1秒時間差自然也就少了1秒

所以要1秒更新一次目前時間就達到了倒計時的效果

2.需要注意的就是時間之間的轉換和對得出數值的處理

3.用到的方法:

obj.getTime() //換算成毫秒Math.floor() //把小數點向下舍入結果取一個整數50%24 // 這是對數值求餘的方法,意思是 假如有50個小時,一天24個小時 這個得出的結果就是 餘數是2

具體的數值的運算處理完整代碼裡有詳細的注釋

完整代碼

註:代碼附帶顯示目前時間的標準格式以及倒計時天數

<!DOCTYPE html><html lang="en"><head><meta http-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:courier new,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> <div id="time"></div> <br/> <div id="day"></div> <br/> <div id="tm"></div> <script type="text/javascript">   //在頁面載入完後立即執行多個函數完美方案。  function addloadEvent(func){    var oldonload=window.onload;    if(typeof window.onload !="function"){      window.onload=func;    }    else{      window.onload=function(){        if(oldonload){         oldonload();         }        func();      }    }  }  addloadEvent(showTime);  addloadEvent(day);  addloadEvent(tb);  //在頁面載入完後立即執行多個函數完美方案over。  //天時秒分倒計時  function tb(){  var myDate=new Date();//擷取目前時間  var endtime=new Date("2018,1,1");//擷取結束時間  //換算成秒 小數點向下舍入取整  var ltime=Math.floor((endtime.getTime()-myDate.getTime())/1000);  //console.log(ltime)  //換算成天 小數點向下舍入取整  var d=Math.floor(ltime/(24*60*60));  //換算成小時取去掉天數的餘數(也就是小時) 小數點向下舍入取整  var h=Math.floor(ltime/(60*60)%24);  //換算成分鐘取去掉小時的餘數(也就是分鐘) 小數點向下舍入取整  var m=Math.floor(ltime/60%60);  //換算成分鐘取去掉分鐘的餘數(也就是秒) 小數點向下舍入取整  var s=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  function checkTime(i){  return i<10? "0"+i:""+i;  }  //目前時間標準格式  function showTime(){  var myDate=new Date();//擷取目前時間  var year=myDate.getFullYear();//擷取年份  var month=myDate.getMonth()+1;//擷取月份是0-11的數字所以+1  var date=myDate.getDate();//日  var day=myDate.getDay();//  var h=myDate.getHours();//小時  var m=myDate.getMinutes();//分鐘  var s=myDate.getSeconds();//秒  checkTime(m);  checkTime(s);  //console.log(day)  var week="日一二三四五六".charAt(day);  document.getElementById("time").innerHTML=year+"年"+month+"月"+date+"日"+"星期"+week+h+":"+m+":"+s;  setTimeout(showTime,1000);   }  //倒計時天數計算  function day(){  var myDate=new Date();//擷取目前時間  var endtime=new Date("2018,1,1");//擷取結束時間  //先換算成毫秒再相減就是時間差,再除以一天的毫秒數結果是帶有小數點的,用math方法進一位取整  var ltime=Math.ceil((endtime.getTime()-myDate.getTime())/(24*60*60*1000));  document.getElementById("day").innerHTML="距2018年元旦還有:"+ltime+"天";  } </script></body> </html> 

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的協助,同時也希望多多支援幫客之家!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.