<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() 方法可把一个数字四舍五入为最接近的整数。