2014-02-08 66 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();'和'保持相同的值'時,它的值只會被設置一次,從不更新。 –