如果我有一個表示時間以下字符串:繼續從時間的字符串表示時鐘
var s = "22:01:15";
我想增加與時間與系統時鐘沿,但添加到現有的價值。
無論計算機的實際時鐘時間是多少,我該如何繼續下去?
如果我有一個表示時間以下字符串:繼續從時間的字符串表示時鐘
var s = "22:01:15";
我想增加與時間與系統時鐘沿,但添加到現有的價值。
無論計算機的實際時鐘時間是多少,我該如何繼續下去?
只要看看那個時候,它解析爲Date
實例,並確定和系統的日期之間的差異。然後應用該偏移量。
解析它:
var parts = str.split(":");
應用,爲日期
var dt = new Date();
dt.setHours(parseInt(parts[0], 10));
dt.setMinutes(parseInt(parts[1], 10));
dt.setSeconds(parseInt(parts[2], 10));
獲取差異
var diff = new Date().getTime() - dt.getTime();
應用它隨時喲你就像要顯示值
var now = new Date(new Date().getTime() - diff);
使用now
實例,以顯示
你做的步驟1 - 4次,在一開始;然後根據需要重複步驟5。
寫在功能和我們以下代碼的setTimeout(函數(){timeCount()},1000); –
@iUngi要從超時功能中自動更新'now',至少需要2倍的期望觀測頻率 - 或500ms(這可以通過仔細安排來避免)。我只需要調用函數來根據需要計算'now'(保持上述說明)。 – 2011-06-17 21:21:25
@iUngi:的確,但這可以簡單地設置爲'setTimeout(timeCount,1000);'對於這種事情,我看到很多粒度問題,所以我傾向於更低的數字。但是,這是主意。 –
你可以嘗試使用類似countdown plugin的東西,並做一個計數。
$('#sinceCountdown').countdown({since: CUSTOMTIMEVAR,
format: 'HMS', description: 'Custom Time'});
下面的腳本會爲你做它:
總之,它需要一些時間之間的區別在這段時間裏,它與當前的日期進行比較,然後使用上的間隔差更新當前時間。
var t = $('#time').text().split(":");
var d = new Date(2011, 01, 01 , t[0], t[1], t[2],0);
var d1 = new Date();
var diff = d.getTime()-d1.getTime();
window.setInterval(function(){
d1 = new Date();
d1.setTime(d1.getTime()+diff);
$('#time').text(ze(d1.getHours())+":"+ze(d1.getMinutes())+":"+ze(d1.getSeconds()));
},1000);
function ze(num) {
if (num.toString().length<=1){
return "0"+num;
}else{
return num;
}
}
編輯成更容易理解 –