JavaScript 页面显示动态时间

不知道哪里有问题,跑步出来

< html>

Javascrupt Task
    <p id = "time"></p>
</body>
<script>
    function show_time(){
        let date_obj = new Date();
        let year = date_obj.getFullYear();
        let month = date_obj.getMonth();
        month++;
        if(month<10){
            month = "0"+month;
        }
        let day = date_obj.getHours();
        if(hours<10){
            hours = "0"+hours;
        }
        let minutes = date_obj.getMinutes();
        if(minutes<10){
            minutes = "0"+minutes;
        }
        let seconds = date_obj.getSeconds();
        if(seconds<10){
            seconds = "0"+seconds;
        }
        return year+"-"+month+"-"+day+""+hours+":"+minutes+":"+seconds;
    }
        
        function show_time(){
            document.getElementByld("time").innerHTML = date_format();
        }
        
    setInterval("show_time()",1000); //每隔1000毫秒(即1秒)显示一次当前时间
</script>

setInterval("show_time()",1000);

setInterval("show_time",1000); 括号去了

setInterval(function(){show_time()},1000); 或者这么写

  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料所提供的代码和问题描述,问题可能出现在以下几个方面:

    1. 页面的字符编码问题:在代码中设置了字符编码为gb2312,但是在大多数情况下,现代浏览器使用的是utf-8编码。请将代码中的charset=gb2312改为charset=utf-8

    2. 定时器的延迟时间问题:在代码中,定时器使用了500毫秒延迟,即t=setTimeout('showTime()',500)。这意味着每500毫秒调用一次showTime()函数,更新时间。如果需要更准确的时间显示,可以将延迟时间改为更小的值,例如100毫秒。

    修改后的代码如下:

    t = setTimeout('showTime()', 100);
    
    1. 获取时间信息的使用问题:在获取时间信息时,代码中使用了now.getHours()now.getMinutes()now.getSeconds()来获取小时、分钟和秒数。这些方法返回的值是一个数字,如果小时、分钟或秒数小于10,则不会在左侧补0。在调用checkTime()函数时,会将分钟和秒数在左侧补0,但是小时没有进行补位处理。为了确保小时数始终显示两位数,并在不足两位数时在左侧补0,可以对小时进行补位处理。

    修改后的代码如下:

    h = checkTime(h);
    

    根据问题描述和参考资料提供的代码,以上是可能的问题和解决方案。如果问题仍然存在,请提供更多代码或描述,以便更好地帮助解决问题。