2014-02-08 64 views
0

这个简单的函数是用来显示时间和更新每秒使用setInterval(),时间显示但不更新,我也尝试从身体的onload调用调用函数,它是相同的。setInterval()定时器不工作

<script language="JavaScript" type="text/javascript"> 
var currentTime = new Date(); 
function currentTimeStrings() 
    { 

     var hours = currentTime.getHours(); 
     var hoursToString = hours; 
     if (hoursToString>12) 
     { 
      hoursToString = hoursToString-1; 
     } 
     switch (hoursToString) 
     { 
     case 13: 
      hoursToString = 2; 
      break; 
     case 14: 
      hoursToString = 3; 
      break; 
     case 15: 
      hoursToString = 4; 
      break; 
     case 16: 
      hoursToString = 5; 
      break; 
     case 17: 
      hoursToString = 6; 
      break; 
     case 18: 
      hoursToString = 7; 
      break; 
     case 19: 
      hoursToString = 8; 
      break; 
     case 20: 
      hoursToString = 9; 
      break; 
     case 21: 
      hoursToString = 10; 
      break; 
     case 22: 
      hoursToString = 11; 
      break; 
     case 23: 
      hoursToString = 12; 
      break; 
     default: 
      hoursToString = hoursToString; 
      break; 

     } 
     var minutes = currentTime.getMinutes(); 
     var seconds = currentTime.getSeconds(); 
     document.getElementById("timeDisp").innerHTML=hoursToString + ':' + minutes + ':' + seconds; 
    } 
    setInterval(currentTimeStrings,1000); 
</script> 

回答

3

currentTime为当前时间创建只有一次,从不更新

请尝试移动var currentTime = new Date();进入里面的功能:

function currentTimeStrings(){ 
    var currentTime = new Date(); 
    //your code 
} 
+0

现在,它的工作,但有一个问题:我还以为外面并不重要,因为它仅仅是一个全局变量。 – Reece

+2

@ user3280654:它是全局的,可以被访问,但是当你调用'var currentTime = new Date();'和'保持相同的值'时,它的值只会被设置一次,从不更新。 –