直接上代码:
<body onload="myTime()">
<p id="time"></p>
<script>
/*
为什么 Date 对象 d 在函数外部,时间不会变化:
- 在函数外部,d 获取的系统时间已经定了,是某一确定时间
- 在函数内部,由于每 0.5s 会调用该函数,因此在函数内部这个获取的系统时间是不断变化的
*/
// var d = new Date();
// alert(d);
function myTime() {
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
document.getElementById("time").innerHTML = hour + ":" + minute + ":" +second;
setTimeout(
function() {
myTime();
// alert(d);
},500
);
}
/* 如果m < 10,前面加 '0',使之更符合人们的习惯 */
function checkTime(m) {
if (m < 10)
m = "0" +m;
return m;
}
</script>
</body>
首先,写的时候把 Date 对象放在函数体外了,然后发现时间没有发生变化,刚开始以为是没有调用这个函数,按F12发现函数在调用,只不过时间没动,因此怀疑每次调用函数,获取的系统时间没变,所以把 Date 对象放在函数体内部,每次调用,都会重新获取系统时间,以此达到更新时间的目的。