今天做倒计时的时候,突然发现倒计时出了问题,多算了8个小时。找了很久才发现问题所在。希望遇到和我一样问题的人能够看到这篇文章,解决掉自己的问题 先看图片的问题:根据今天的2020/9/2 22.26 到 2020/9/3这一天,倒计时应该显示 0天1时33分55秒,但是偏偏就多了8个小时 问题代码如下:
//倒计时 function countTime() { //获取当前时间 var date = new Date(); var now = date.getTime(); //设置截止时间 str=2020-9-3 var str=document.getElementById("endtime").innerHTML; // var str=new Data("2020-9-3 00:00:00"); // var str=endTime; var endDate = new Date(str); var end = endDate.getTime(); //时间差 var leftTime = end-now; //定义变量 d,h,m,s保存倒计时的时间 var d,h,m,s; if (leftTime>=0) { d = Math.floor(leftTime/1000/60/60/24); h = Math.floor(leftTime/1000/60/60%24); m = Math.floor(leftTime/1000/60%60); s = Math.floor(leftTime/1000%60); //将倒计时赋值到div中 document.getElementById("_d").innerHTML = d+"天"; document.getElementById("_h").innerHTML = h+"时"; document.getElementById("_m").innerHTML = m+"分"; document.getElementById("_s").innerHTML = s+"秒"; }else if(!Number.isNaN(leftTime)){ //第一次调用该函数,leftTime的值是NAN document.getElementById("overdue").innerHTML='<font color="red">已过期</font>'; return ; } //递归每秒调用countTime方法,显示动态时间效果 setTimeout(countTime,1000); }此时执行的是上面的代码,出现了该问题,其实问题出在了赋值上面,上面我给str赋值时,由于我对 endTime做了格式设置,所以 endTime 里面的值是 2020-9-3,但是当我把这个值修改为 2020-9-3 00:00:00 之后,就能够正常显示时间了。 如果这篇文章有帮到你的话,就请麻烦帮忙点个赞啦!!!