새로 고침 시간이 반드시 50밀리초일 필요는 없습니다. 그러나 인간의 눈의 인식 능력을 고려할 때 주파수를 너무 빨리 새로 고치는 것은 의미가 없습니다. 또한 다음 두 가지 요구 상황을 고려해야 합니다. 1. 현재와 A 사이의 거리. 미래의 특정 시간 남은 시간은 얼마나 됩니까? 2. 과거의 특정 시간부터 현재까지 얼마나 흘렀습니까?
<div id="timeB"></div> <script type="text/javascript"> function countDown(endTime, startTime = new Date()) {//为了满足一些特殊情况这里给一个开始时间的参数并附上默认值,一般情况只需要传入结束时间即可 let date = endTime - startTime; //时间差 let mmsec = date % 1000 //所余毫秒数 let seconds = Math.floor(date / 1000 % 60); //所余秒数 let minutes = Math.floor(date / 1000 / 60 % 60); //所余分钟数 let hour = Math.floor(date / 1000 / 60 / 60 % 24); //所余时钟数 let day = Math.floor(date / 1000 / 60 / 60 / 24); //天数 return { day: day , hour: hour , minutes: minutes , seconds: seconds , mmsec: mmsec } } const timeB = document.querySelector('#timeB'); //开启定时器 setInterval(() => { let time = countDown(new Date(2016, 8, 1));//只需要传入结束时间 timeB.innerHTML = "距离2016年9月1号00点还有" + time.day + "天" + time.hour + "小时" + time.minutes + '分钟' + time.seconds + '秒' + time.mmsec + "毫秒"; }, 50); </script>