javascript中的简单日期

时间:2014-10-29 16:13:36

标签: javascript date

请检查我的代码,我在JS中创建了一个简单的日期,但它不起作用,我正在学习一个教程并且我有确切的代码。

<html>
    <head>
	<title>Clock</title>
	<script>
	    function time() {
		var time = new Date();
		var hours = time.getHours();
		var mins = time.getMinutes();
		var secs = time.getSeconds();

		if (secs<10) {
			secs = "0" + secs;
		}
		if (mins<10) {
			secs = "0" + mins;
		}

		document.getElementById("thetime").innerHTML=hours+":"+mins+":"+secs;

		var timer = setTimeout(function(){time()},500);
	    }
	</script>
    </head>
    <body onload="time()">
	    <div id="thetime"></div>
    </body>
</html>

5 个答案:

答案 0 :(得分:4)

您有function time() {...}var time = new Date();。局部变量影响函数,意味着在setTimeout(function(){time()},500);内,time引用Date对象,而不是函数。

解决方案:重命名其中任何一个。

答案 1 :(得分:1)

此外,

替换这部分代码:

if (mins<10) {
            secs = "0" + mins;
        }

用这个:

if (mins<10) {
            mins= "0" + mins;
        }

答案 2 :(得分:0)

尝试使用setInterval()代替超时

    function time() {
      //Your stuff here...
    }
    var timer = setInterval(function(){time()},500);

Fiddle

答案 3 :(得分:0)

避免使用与函数名称相同的变量名称。它试图将变量称为函数。将其命名为currentTime使其有效。

function time() {
    var currentTime = new Date();
    var hours = currentTime.getHours();
    var mins = currentTime.getMinutes();
    var secs = currentTime.getSeconds();

    if (secs<10) {
        secs = "0" + secs;
    }
    if (mins<10) {
        secs = "0" + mins;
    }
    document.getElementById("thetime").innerHTML=hours+":"+mins+":"+secs;

    var timer = setTimeout(function(){time()},500);
}

答案 4 :(得分:0)

您命名的变量var time与您的函数time()相同。你应该重命名其中一个。

例如,为您的函数命名customTimer。您可以通过setTimeout和html

中的onload来调用此功能

&#13;
&#13;
<html>
<head>
   <title>Clock</title>
   <script>
  function customTimer() {
     var time = new Date();
     var hours = time.getHours();
     var mins = time.getMinutes();
     var secs = time.getSeconds();

     if (secs < 10) {
        secs = "0" + secs;
     }
     if (mins < 10) {
        mins = "0" + mins;
     }

     document.getElementById("thetime").innerHTML = hours + ":" + mins + ":" + secs;

     var timer = setTimeout(function () { customTimer() }, 500);
  }
   </script>
</head>
<body onload="customTimer()">
   <div id="thetime"></div>
</body>
</html>
&#13;
&#13;
&#13;