代码在下面。我试图用这种方法做一个时钟而不使用“日期”。 基本上,我认为逻辑是正确的,但语法上可能有错误。 输出仅为1.,没有任何运动。我希望输出为-0:0:0 感谢您的帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>on submit</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="time"></div>
<script src="script.js"></script>
</body>
</html>
var myVar = setInterval(myTimer, 1000);
function myTimer() {
var sec = 0;
var min = 0;
var hr = 0;
sec++;
if(sec==60) {
min++;
sec=0;
}
if(min==60)
{
min = 0;
hr++;
}
return(hr+":"+min+":"+sec);
}
document.getElementById("time").innerHTML = myVar;
答案 0 :(得分:2)
如果您将对setInterval的调用结果分配给变量- myVar (在您的情况下),则会收到一个整数,该整数是该特定时间间隔的唯一ID,而不是您期望的实际时间由 myTimer 函数返回。
因此,与其从 myTimer 函数返回结果,不如在其中设置时间元素的innerHTML。
var interval = setInterval(myTimer, 1000);
function myTimer() {
var sec = 0;
var min = 0;
var hr = 0;
sec++;
if(sec==60) {
min++;
sec=0;
}
if(min==60)
{
min = 0;
hr++;
}
document.getElementById("time").innerHTML=hr+":"+min+":"+sec;
}
请注意:由于每次调用都会在myTimer中将变量 sec 重置为 0 ,因此您的时间将始终为0。因此,将sec,min和hr的定义放在函数之外。
这里是一个示例-只需点击“运行代码段”:
var interval = setInterval(myTimer, 1000);
var sec = 0;
var min = 0;
var hr = 0;
function myTimer() {
sec++;
if (sec == 60) {
min++;
sec = 0;
}
if (min == 60) {
min = 0;
hr++;
}
document.getElementById("time").innerHTML = hr + ":" + min + ":" + sec;
}
<div id="time"></div>