2011-01-20 34 views
0

我使用下面的代碼來顯示計數時鐘 分秒都格式化很好,但時間正在顯示爲負數如「-238」格式化COUNTUP定時器的Javascript

 <script language="javascript" type="text/javascript"> 
     var startTime = new Date(2011,01,21,08,55, 0) 

     $(document).ready(function() { 
      setTimeout(updateClock, 1000); 
     }); 
     function updateClock() { 
      var timeField = $(".timeSince"); 
      var currentTime = new Date(); 
      var difference = currentTime - startTime; 
      timeField.html(MillisecondsToDuration(difference)); 
      setTimeout(updateClock, 1000); 
     } 
     function MillisecondsToDuration(n) {     
      var hms = "";      

      var dtm = new Date();     
      dtm.setTime(n);    
      var h = "000" + Math.floor(n/3600000);    
      var m = "0" + dtm.getMinutes();   
      var s = "0" + dtm.getSeconds();   


      hms = h.substr(h.length-4) + " hours, " + m.substr(m.length-2) + " mins, ";     
      hms += s.substr(s.length-2) + " secs"; 
      return hms;    
     } 
     </script> 

回答

1

我認爲問題是因爲'startTime'大於'currentTime'。只是做逆減法正常工作:

function updateClock() { 
    var timeField = $(".timeSince"); 
    var currentTime = new Date(); 
    var difference = startTime - currentTime ; 
    timeField.html(MillisecondsToDuration(difference)); 
    setTimeout(updateClock, 1000); 
} 

http://jsbin.com/ogomi3/edit

我不知道這是否是你想要的。