原生JS代码计时,为什么秒数不随时间刷新? 5C

<!DOCTYPE html>



day25-27(1)

var d = new Date(); var res = document.getElementById("result"); var t; function time() { 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();


3个回答

你要把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();
<!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>

图片说明
在time的函数中 你的定时器无论怎么执行,你的时间永远都是第一次运行的时间,你需要每次执行,都要获取一次当前时间,所以吧代码换下文职即可.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
webview中,如何知道事件是否被js消费?
2
求教大神,原生JS,我想选中表格中的A标签。我写的代码怎么写都不对,求帮助。
4
Java原生api连接zookeeper特别慢,求问什么原因
1
最新版本,原生的odl是否支持高并发请求(我指的是互联网行业类似于秒杀系统架构)(代码层面跟涉及框架)
1
原生JDBC为什么只支持位置参数?而不是命名参数?
1
关于原生 js 实现小程序的 onshow 和 onhide 事件
1
qt for Android调用原生函数,实现点击输入框输入法首先显示的是数字键盘
1
HTML 原生 input time输入框时间格式问题
3
原生 .html文件怎么进行封装?
1
JS做视频和图片瀑布流?成功后在额外补助。
2
数据的处理,用原生js实现两个数组的一个合并
2
如何使用java原生api根据数据动态生成心电图,求大佬给出思路和一点代码提示
3
原生微信小程序怎样根据时间自动切换样式
3
如何用原生代码实现图片上的仪表盘
1
怎么确定一个html页面的ready方法运行完毕?原生js或者jq,有这方面的途径入手吗?
1
Flutter ios原生开发添加广点通开屏广告,进入flutter后无法加载插件?
1
原生app内嵌H5页面分享到微信之后再进行二次分享 自定义图文链接问题,怎么解决?
1
js获取内嵌与于安卓内的h5的内容高度不准确
1
android8.1原生Settings里面的二级菜单选项怎么去掉或隐藏?
1
flutter app启动页时间怎么可以设置短一点