-1
<html>
<script language="javascript"> 
today = new Date(); 
document.write("<BR>The time now is: ", today.getHours(),":",today.getMinutes(),":",today.getSeconds()); 
document.write("<BR>The date is: ", today.getDate(),"/",today.getMonth()+1,"/",today.getYear()); 
</script> 
</html>

我想自动刷新页面以显示几秒钟内的变化。怎么做?请帮我。

4

3 回答 3

2

首先,您可能不应该使用 document.write()。这通常被认为是不好的做法。您最好在 HTML 中使用容器元素(例如 a <div>)。然后,您可以设置innerHTMLthis <div>

接下来,您不必每秒钟都刷新页面。使用一个setInterval()函数。它接受一个函数和一个间隔,让您可以设置给定函数应该在什么时间之后再次运行。

在您的 HTML 中,您所需要的只是一个<div>元素。

<div id="time"></div>

在您的 JavaScript 中,定义一个将当前日期写入容器元素的函数,并使用 setInterval 每秒调用一次(1000 毫秒)。

var time = document.getElementById('time');

function writeDate () {
    var today = new Date();
    time.innerHTML = "The time now is: " + today.getHours() +":" + today.getMinutes() + ":" + today.getSeconds();
    time.innerHTML += "<br>The date is: " + today.getDate() + "/" + (today.getMonth() + 1) + "/" + today.getFullYear();
}

setInterval(writeDate, 1000);

您可以在这个jSFiddle中看到它的实际效果。

于 2013-04-30T06:42:05.210 回答
0

在这里自动刷新不是一个好主意。有更好的方法。但是,如果您坚持,请使用:

window.location.reload();

更好的方法是将其包装在一个函数中并调用window.setIntervalwindow.setTimeout。请注意,setInterval注册一个循环定时器 whilesetTimeout只会调用一次注册的函数。像这样更改您的代码:

<head>
<script language="text/javascript">
function doIt() {
    var today = new Date();
    document.getElementById("output").innerHTML = "The time now is: " +
        today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds() + 
        "<br />The date is: " + today.getDate() + "/" + ( today.getMonth() + 1 ) +
        "/" + today.getYear();
}
window.setInterval(doIt, 1000);
// Alternatively you can use:
//window.setInterval("doIt()", 1000); // This is what you usually learn first...
</script>
</head>
<body>
    <div id="output"></div>
</body>
于 2013-04-30T06:38:47.237 回答
0

试试这个(注意你应该使用getFullYear而不是getYear):

<html>
    <head>
        <title>Date Time</title>
    </head>
    <body>
        <div id = 'time'><div>
        <script language="javascript">
            function getCurrentTime()
            {
                var today = new Date();
                var hours = today.getHours();
                if (hours <= 9){
                    hours = '0' + hours;
                }
                var minutes = today.getMinutes();
                if (minutes <= 9){
                    minutes = '0' + minutes;
                }
                var seconds = today.getSeconds();
                if (seconds <= 9){
                    seconds = '0' + seconds;
                }
                return hours + ":" + minutes + ":" + seconds;
            }

            function getCurrentDate()
            {
                var today = new Date();
                var days = today.getDate();
                if (days <= 9){
                    days = '0' + days;
                }
                var months = today.getMonth() + 1;
                if (months <= 9){
                    months = '0' + months;
                }
                var years = today.getFullYear();
                if (years <= 9){
                    years = '0' + years;
                }
                return days + "/" + months + "/" + years;
            }

            function updateDateTime()
            {
                document.getElementById('time').innerHTML = '<br />The time now is: ' + getCurrentTime() +
                                                            '<br />The date is: ' + getCurrentDate();
                setTimeout(updateDateTime, 1000);
            }

            updateDateTime();
        </script>
    </body>
</html>
于 2013-04-30T06:47:19.753 回答