刷新时间也不一定就是50毫秒最好,但是考虑到人的肉眼识别能力,刷新频率太快也没啥意义,另外,我们应该考虑到两种需求情况:1.现在距离将来某一时间还有多久;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>