我正在爲一個已構建的定時器的暫停函數工作,並且我正在陷入一些困境。Javascript日期+毫秒
一旦定時器開始,我捕捉當前日期毫秒:
if(!begin){
begin = Date.now();
}
一旦用戶點擊暫停,它將再獲得以毫秒爲單位的當前日期。
// Pause the timer
function pause(){
console.log('Begin : ' + begin) //Begin : 1467580324524
console.log('End: ' + currentDate().getTime()) //End: 1467580329936
console.log('Difference: ' + parseInt(begin - currentDate().getTime())) //Difference: -5414
clearInterval(interval);
}
我現在有一個名爲difference
變量,它包含的開始時間之間的毫秒數和停止時間。
當用戶點擊「恢復」時,我需要獲取當前日期並添加我們得到的毫秒差。然後應該使用新的時間點從當前停止的位置恢復計時器。
如何才能將毫秒添加到當前日期以獲得新的起點?
我想是這樣的,沒有運氣:
var mili = 4512;
var newDate = new Date(mili*1000);
更新:這裏是我的計時器代碼的鏈接,所以你可以看到我有工作。 https://jsfiddle.net/3dweffy8/3/
我通過清除間隔得到了暫停計時器,但我不知道如何繼續讓計時器恢復在這一點。
這不是最好的算法,你爲什麼會消耗CPU,而用戶在暫停時,你可以增加從暫停的計時器? – ProllyGeek
你可以提供,你期待在開始 - >暫停 - >恢復 - >暫停 - >恢復後的結果嗎?你是否期望轉換的時間是一個總數,或者你期望的是一個時間列表,每個時間都給出在第n個和第(n + 1)個第n個狀態之間轉換的時間。 – thst
@thst - 我其實只是遇到了這個問題。開始>暫停>恢復工作正常,但當我暫停並再次恢復時,它會跳轉,就好像它從未停止計數。 – SBB