<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>sort</title>
</head>
<body>
<span id="result"></span>
</body>
<script>
var res = document.getElementById("result");
function time() {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
var day = d.getDate();
var weekday = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"];
var week = d.getUTCDay() + 1;
var hour = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
minutes = ('0' + minutes).slice(-2);
seconds = ('0' + seconds).slice(-2);
res.innerHTML = year + "年" + month + "月" + day + "日"+ " " + weekday[week] + " " + hour + ":" + minutes + ":" + seconds;
setTimeout(time, 1000);
}
time();
</script>
</html>
你要把var d = new Date(); 放到time这个function里面,每3000ms调用一次time的时候重新获取当时的时间才会刷新为新的时间,否则这个d赋值之后就一直是当时的秒数了。
var res = document.getElementById("result");
var t;
function time()
{
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth()+1;
var day = d.getDate();
var weekday = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"];
var week = d.getUTCDay()+1;
var hour = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
minutes = checkTime(minutes);
seconds = checkTime(seconds);
res.innerHTML = year + "年" + month + "月" + day + "日"+ " " + weekday[week] + " " + hour + ":" + minutes + ":" + seconds;
console.log(seconds);
t = setTimeout(time, 1000);
}
function checkTime(i)
{
if (i<10)
{
i="0" + i
}
return i
}
time();
在time的函数中 你的定时器无论怎么执行,你的时间永远都是第一次运行的时间,你需要每次执行,都要获取一次当前时间,所以吧代码换下文职即可.