2013-10-17 136 views

回答

2

你可以說,每次被稱爲時間計數器加一功能,顯示的數值爲: 計數器/ 60分鐘,計數器%60秒

然後你可以使用setInterval函數使JavaScript每秒鐘調用您的代碼。它不是非常精確,但對於簡單的定時器來說已經足夠了。

0

這可能是什麼東西? plain count up timer in javascript

它是基於setInterval的方法

setInterval(setTime, 1000); 
+0

雖然此鏈接可以回答這個問題,最好是在這裏有答案的主要部件,並提供鏈接以供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/16958846) –

6

這裏是一個非常hackish的方法 - http://jsfiddle.net/gPrwW/1/

HTML -

<div id="worked">31:14</div> 

JS:

$(document).ready(function (e) { 
    var $worked = $("#worked"); 

    function update() { 
     var myTime = $worked.html(); 
     var ss = myTime.split(":"); 
     var dt = new Date(); 
     dt.setHours(0); 
     dt.setMinutes(ss[0]); 
     dt.setSeconds(ss[1]); 

     var dt2 = new Date(dt.valueOf() + 1000); 
     var temp = dt2.toTimeString().split(" "); 
     var ts = temp[0].split(":"); 

     $worked.html(ts[1]+":"+ts[2]); 
     setTimeout(update, 1000); 
    } 

    setTimeout(update, 1000); 
}); 
+0

雖然可以改進! – Vandesh

+0

適用於即時消息使用的內容。 TNX! – mike

+0

如何在點擊時停止計時器? – Ionut

4

處理這個具體的方法如下:

  1. 存儲腳本的功能
  2. 是被一再呼籲得到了時間的開始時間已過
  3. 轉換在任何你想要的格式和所用時間證明它

示例代碼:

var initialTime = Date.now(); 

function checkTime(){ 
    var timeDifference = Date.now() - initialTime; 
    var formatted = convertTime(timeDifference); 
    document.getElementById('time').innerHTML = '' + formatted; 
} 

function convertTime(miliseconds) { 
    var totalSeconds = Math.floor(miliseconds/1000); 
    var minutes = Math.floor(totalSeconds/60); 
    var seconds = totalSeconds - minutes * 60; 
    return minutes + ':' + seconds; 
} 
window.setInterval(checkTime, 100); 

您可以輕鬆更改檢查時間的粒度(當前設置爲0.1秒)。此計時器的優點是,它在更新時不會不同步。

+2

我只是添加以下它顯示09:05而不是9:5 'var minutes = leftPad(Math。地板(totalSeconds/60),2); VAR秒= leftPad(totalSeconds - 分鐘* 60,2);' 其中: '函數leftPad(aNumber的,aLength){ 如果(aNumber.toString()長度> = aLength返回aNumber的; 返回(。 Math.pow(10,aLength)+ Math.floor(aNumber))。toString()。substring(1); }' – JoeGalind

4

var date = new Date(); 
 
var sec = date.getSeconds(); 
 
var min = date.getMinutes(); 
 
var handler = function() { 
 
    if (++sec === 60) { 
 
    sec = 0; 
 
    if (++min === 60) min = 0; 
 
    } 
 
    document.getElementById("time").innerHTML = (min < 10 ? "0" + min : min) + ":" + (sec < 10 ? "0" + sec : sec); 
 
}; 
 
setInterval(handler, 1000); 
 
handler();
<h1 id="time" style="text-align: center"></h1>

2
var initialTime = Date.now(); 

function checkTime(){ 
var timeDifference = Date.now() - initialTime; 
var formatted = convertTime(timeDifference); 
document.getElementById('time').innerHTML = '' + formatted; 
} 

function convertTime(miliseconds) { 
var totalSeconds = Math.floor(miliseconds/1000); 
var minutes = Math.floor(totalSeconds/60); 
var seconds = totalSeconds - minutes * 60; 
return minutes + ':' + seconds; 
} 
window.setInterval(checkTime, 100); 
+0

您應該在示例代碼中包含一個解釋來幫助他人理解您的代碼片段的功能。 – Todd

相關問題