<body onload="myFunction()"> <p id="demo"></p> <script> function myFunction(){ var nowDate = new Date(); var EndDate=new Date("2020-10-01 10:30:00") var dateDiff=EndDate.getTime()-nowDate.getTime(); var days=Math.floor(dateDiff/(24*3600*1000)) //計算出天數 //計算出小時數 var leave1=dateDiff%(24*3600*1000) //計算天數后剩余的毫秒數 var hours=Math.floor(leave1/(3600*1000)) //計算相差分鍾數 var leave2=leave1%(3600*1000) //計算小時數后剩余的毫秒數 var minutes=Math.floor(leave2/(60*1000)) //計算相差秒數 var leave3=leave2%(60*1000) //計算分鍾數后剩余的毫秒數 var seconds=Math.round(leave3/1000) //調用checkTime方法將數字小於10的在前面補0 days=checkTime(days); hours=checkTime(hours); minutes=checkTime(minutes); seconds=checkTime(seconds); var x = document.getElementById("demo"); x.innerHTML="剩余時間:"+days+"天"+hours+"小時"+minutes+"分鍾"+seconds+"秒"; t=setTimeout(function(){myFunction(),1000}) } function checkTime(i){ if(i<10&&i!=0){ i="0"+i; } return i; } </script> </body>
思路:使用getTime()計算出兩個時間的毫秒單位並相減得到以毫秒為單位的時間差,然后通過計算分別獲取到對應的時分秒。
擴展:
Math.floor()方法執行的是向下取整計算,它返回的是小於或等於函數參數,並且與之最接近的整數。
Math.round() 方法可把一個數字四舍五入為最接近的整數。
