2016-06-08 112 views
-1
<h1>TIME: <%= Time.now.strftime("%H:%M:%S") %></h1> 

在模板中,我的時間停止了。我想像電子手錶一樣爲它製作動畫。如何在軌道上計算時間

刷新頁面時會改變時間。

例如,我要去索引頁,現在時間顯示:12:30:50(HH:MM:SS)。我再次刷新,時間顯示:12:31:10。

我想表明我秒鐘是這樣的:50 51 52 53 54 .....

+2

我認爲要用javascript或jquery做得更好 –

+3

Rails生成html然後將其傳遞給瀏覽器。之後,鐵軌與它沒有任何關係。爲了讓頁面上的內容動態變化,你需要一個客戶端腳本 - 例如javascript。您可以將JavaScript寫入Rails模板,並且Rails會將其傳遞給瀏覽器以運行。 –

回答

2

function displayTime() { 
 
    var timer=document.getElementById('timer'); 
 
    var currentdate = new Date(); 
 
    var hours = currentdate.getHours(); 
 
    var minutes = currentdate.getMinutes(); 
 
    var seconds = currentdate.getSeconds(); 
 
    timer.innerHTML = hours + ':' + ("0" + minutes).slice(-2) + ':' + ("0" + seconds).slice(-2);  
 
}; 
 

 
setInterval(displayTime, 1000);
<h1>Time : 
 
    <p id="timer"> 
 
     <%= Time.now.strftime("%H:%M:%S") %> 
 
    </p> 
 
</h1>

首先,讓我們創建一個顯示當前日期的函數。爲此,我們只需找到我們感興趣的p標籤(使用getElementById),並使用innerHTML來寫入它。這是功能displayTime

然後,我們希望每秒都運行這個函數,所以我們使用:setInterval

注意我保留<%= Time.now.strftime("%H:%M:%S") %>,這樣如果javascript未啓用,仍然有日期。如果這不是預期的行爲,那麼你可以替換它。

+0

將您的代碼轉換爲可運行表單。當然,再培訓局部分工作並不完善。 –

+0

謝謝。是工作! –