各位帮我看看这个js,一个是网页时钟,一个是倒计时,到底是时间算错了,还是倒计时算错了,肉眼看感觉两者之间有一秒误差

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>简易网页时钟</title>
<style>
body,div{margin:0;padding:0;}
body{color:#fff;font:16px/1.5 \5fae\8f6f\96c5\9ed1;}
#clock{width:300px;text-align:center;background:#1a1a1a;margin:10px auto;padding:20px 0;}
span{color:#000;width:80px;line-height:2;background:#fbfbfb;border:2px solid #b4b4b4;margin:0 10px;padding:0 10px;}
#count{ width:300px;text-align:center;background:#1a1a1a;margin:10px auto;padding:20px 0;}
</style>
<script>
window.onload = function ()
{
    var oClock = document.getElementById("clock");    
    var aSpan = oClock.getElementsByTagName("span");
        
    setInterval(getTimes, 1000);
    getTimes();
    function getTimes ()
    {
        var oDate = new Date();
        var aDate = [oDate.getHours(), oDate.getMinutes(), oDate.getSeconds()];
        for (var i in aDate) aSpan[i].innerHTML = format(aDate[i])
    }
    function format(a)
    {
        return a.toString().replace(/^(\d)$/, "0$1")    
    }
    ShowCountDown("2016-09-23 12:00:00",'count');
    window.setInterval(function(){ShowCountDown("2016-09-23 12:00:00",'count');}, 1000); 
}
/*倒计时*/
function ShowCountDown(endDate,divname){ 
    var now = new Date(); 
    var endDate = new Date(endDate); 
    var leftTime=endDate.getTime()-now.getTime(); 
    var leftsecond = parseInt(leftTime/1000); 
    //var day1=parseInt(leftsecond/(24*60*60*6)); 
    var day1=Math.floor(leftsecond/(60*60*24)); 
    var hour=Math.floor((leftsecond-day1*24*60*60)/3600); 
    var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60); 
    var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60); 
    var cc = document.getElementById(divname); 
    cc.innerHTML = "距离结束还有:"+day1+"天"+hour+"小时"+minute+"分"+second+"秒"; 
} 
</script>
</head>
<body>
<div id="clock">
    <span></span>点<span></span>分<span></span>秒
</div>
<div id="count"></div>
</body>
</html>
阅读 2.6k
2 个回答

两者最后的秒数相加不是60秒

var second=parseInt(leftsecond%60)+1;

应该是和毫秒有关的,那就+1s好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题