2014-06-06 52 views
0

我有這個功能,我正在努力。我所要做的就是將日,小時,分鐘和秒的值放入.overTime div。我想一次又一次地使用相同的函數,因爲我有更多的div,我想顯示相同的值,但以不同的方式顯示。試圖使可重用的功能,並顯示結果在一個div

你們真棒謝謝。

NowTime = new Date(); //Time Now 
StartTime = new Date($('#StartTime').val()); 
StopTime = new Date($('#StopTime').val()); 

function fixIntegers(integer){ 
    if (integer < 0) 
     integer = 0; 
    if (integer < 10) 
     return '0' + integer; 
    return '' + integer; 
} 
    function Test(difference) 
    { 
     var toReturn = { days: 0, hours: 0, minutes: 0, seconds: 0 }; 
     toReturn.seconds = fixIntegers(difference % 60); 
     difference = Math.floor(difference/60);  

     toReturn.minutes = fixIntegers(difference % 60); 
     difference = Math.floor(difference/60); 

     toReturn.hours = fixIntegers(difference % 24); 
     difference = Math.floor(difference/24); 

     toReturn.days = fixIntegers(difference); 
     return toReturn; 
    } 

    function run() 
    { 
     var output = Test(Math.floor((NowTime - StopTime)/1000)); 
     $('.OverTime').html(output.days + ':' + output.hours + ':' + output.minutes + ':' + seconds); 
    } 
setInterval(run, 1000) 

FIDDLE:http://jsfiddle.net/8943U/47/

+0

你在哪裏調用函數?並更具體地說明你正面臨的問題 –

+1

你正試圖在日期對象上做無效的數學運算。嘗試'alert(NowTime);'看看你正在處理的對象的計算結果。 – JRulle

+0

@JRulle先生/女士:我知道NowTime提醒,它不是「無效的數學」。感謝您的努力。 – Amandeep

回答

1

你的第一個問題是這樣的:

$('.OverTime').html(output.days + ':' + output.hours + ':' + output.minutes + ':' + seconds); 

應該是:

$('.OverTime').html(output.days + ':' + output.hours + ':' + output.minutes + ':' + output.seconds); 

變量seconds不存在,你需要output.seconds代替。然後你的功能將開始工作see here

你的第二個問題是那些值是NaN,我會留給你解決這個問題。

乾杯!

+1

如果你不知道他們爲什麼是NaN,讓我知道,我會幫你。 –

相關問題