2014-02-25 41 views
1

我使用下面的腳本顯示在我的網站當前時間:這次可以自動更新腳本嗎?

<script type="text/javascript"> 
<!-- 

    var currentTime = new Date() 
    var hours = currentTime.getHours() 
    var minutes = currentTime.getMinutes() 
    if (minutes < 10) 
     minutes = "0" + minutes 
    var suffix = "AM"; 
    if (hours >= 12) { 
     suffix = "PM"; 
     hours = hours - 12; 
    } 
    if (hours == 0) { 
     hours = 12; 
    } 

    document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>") 
//--> 
</script> 

不過,我需要刷新頁面,以便更新時間。我是否可以自動每分鐘刷新一次以保持最新狀態?

謝謝。

+0

我建議你看看使用[Livestamp.js(http://mattbradley.github.io/livestampjs/) – Brian

+0

感謝。我希望能夠使用已有的代碼。我在看像setInterval這樣的函數,但它需要將我現有的腳本封裝在一個函數中。我試過了,它破裂了。也許我做錯了? – user3353117

+0

我沒有看到你自己的一個點..多年前你不得不使用一個圖書館,如果它可用。 – Brian

回答

0

您可以用setInterval來有代碼執行每x毫秒:

function setTime() { 
    var currentTime = new Date() 
    var hours = currentTime.getHours() 
    var minutes = currentTime.getMinutes() 
    if (minutes < 10) 
     minutes = "0" + minutes 
    var suffix = "AM"; 
    if (hours >= 12) { 
     suffix = "PM"; 
     hours = hours - 12; 
    } 
    if (hours == 0) { 
     hours = 12; 
    } 

    document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>") 
} 

setInterval(setTime, 60000); 

注意,它通常是一個糟糕的做法是使用document.write。更好的方法是在頁面上靜態顯示元素,並在方法中更新它。

document.getElementById('currentTime').innerText = hours + ":" + minutes + " " + suffix; 

這裏是一個工作Fiddle Demo

+0

非常感謝!這在Chrome中運行良好,但時間在Firefox中消失了。有什麼建議麼? – user3353117

+0

使用'textContent'而不是'innerText'。我相信這是更多的跨瀏覽器兼容。看看[這個答案](http://stackoverflow.com/questions/11646398/cross-browser-innertext-for-setting-values),使一些將在多個瀏覽器中工作。 – Bic

+0

它現在在Firefox中效果很好,但在默認瀏覽器的Android上,我仍然沒有收到任何東西。有什麼不同的要求嗎? – user3353117

相關問題