2012-02-11 31 views
1

我有下面的代碼:這裏函數計算NEWTIME - 古來把點添加到一個變種似乎失敗

  • 一個div稱爲「以舊換新」計時器滴答作響,例如零點03分34秒 (HH:MM:SS)
  • 我有一個名爲setScore();函數被稱爲 定期
  • 我有以下VARS:

1:var pointsAvailable = 40;

2 :var oldTime = 00:00:00;

現在我想廣告10點pointsAvailable每個函數被調用2秒內的時間。如果時間更長,pointsAvailable必須重新設置爲40.由於定時器保持滴答狀態,oldTime(它是開始時間)應該由newTime代替(每次函數運行時)。

我想出了下面的代碼:

var pointsAvailable = 40; //start value 
var oldTime = 00:00:00; //start value 

function setScore() { 
    var newTime = document.getElementById('tm').innerHTML; //get the time from div: 'tm' e.g. 00:00:02 
    var findTime = (newTime - oldTime); //calculate the time in between e.g. 00:00:02 - 00:00:00 = 2 

    if (findTime < 3) { //is it smaller then 3? 
     pointsAvailable += 10; //add 10 to the pointsAvailable 
    } else { //is it 3 or bigger? 
     pointsAvailable = 40; //set it back to 40 
    } 
    oldTime = newTime; //replace oldTime with newTime, so newTime becomes oldTime 
} 

但它無法正常工作。我究竟做錯了什麼?

親切的問候, 莫里斯

+0

你的控制檯對此有何評論? – georg 2012-02-11 17:12:55

+0

'var oldTime = 00:00:00;'不在控制檯中給你一個錯誤? – 2012-02-11 17:22:16

+1

你爲什麼要減去兩個字符串?您沒有任何操作將時間轉換爲數字,因此減法將無法達到您想要的效果。 – loganfsmyth 2012-02-11 17:34:32

回答

1

您可能需要使用JavaScript內置的Date對象。當您創建新日期時,它默認爲當前日期和時間;當你要開始你的「定時器」運行

js> d = new Date() 
Sat Feb 11 2012 11:16:49 GMT-0800 (PST) 
js> e = new Date() 
Sat Feb 11 2012 11:16:56 GMT-0800 (PST) 
js> e - d 
7077 
js> 

因此,創建一個開始日期,然後創建一個又一個,當你希望它停止:你可以用它來獲取的時間跨度。從前者減去後者會給你時間差(以毫秒爲單位)。

希望有幫助!

+0

謝謝,這對我有用! – Maurice 2012-02-11 21:42:34

相關問題