2016-05-30 72 views
-2

(午夜)我試圖自動計算時間差,如果時間差是在同一天例子的Javascript自動計算時間過去00十進制格式

開始它所有的工作原理確定結束時間

08:00 12:00 4.0

問題: 22:00 01:00

給出了結果-21.0小時,這是不可接受的 應該3.0小時

的源代碼:FIDDLE LINK

<div class="container"> 
<table id="t1" class="table table-hover"> 
     <tr> 
      <th class="text-center">Start Time</th> 
      <th class="text-center">End Time</th> 
      <th class="text-center">Stunden</th> 
     </tr> 
     <tr id="row1" class="item"> 
      <td><input name="starts[]" class="starts form-control" ></td> 
      <td><input name="ends[]" class="ends form-control" ></td> 
      <td><input name="stunden[]" class="stunden form-control" readonly="readonly" ></td> 
     </tr> 
      <tr id="row2" class="item"> 
      <td><input name="starts[]" class="starts form-control" value="22:00"></td> 
      <td><input name="ends[]" class="ends form-control" value="01:00"></td> 
      <td><input name="stunden[]" class="stunden form-control" readonly="readonly" ></td> 
     </tr> 
    </table> 
</div> 

JS

$(document).ready(function(){ 
    $('.item').keyup(function(){ 

      var starts = $(this).find(".starts").val(); 
      var ends = $(this).find(".ends").val(); 
         var stunden = NaN; 
      s = starts.split(':'); 
      e = ends.split(':'); 

      min = e[1]-s[1]; 
      hour_carry = 0; 
      if(min < 0){ 
       min += 60; 
       hour_carry += 1; 
      } 
      hour = e[0]-s[0]-hour_carry; 
      min = ((min/60)*100).toString() 

      if (hour < 0) { 
         hour += 24; 
      } 

      stunden = hour + "." + min.substring(0,2); 



     if (!isNaN(e[1])){ // && (hour > 0) && (hour < 24) 
      $(this).find(".stunden").val(stunden); 
        } 
    });  
}); 

代碼編輯,現在它的工作原理。

回答

1

你已經知道的解決方案,因爲你使用它的分鐘:

if(min < 0){ 
    min += 60; 
    hour_carry += 1; 
} 

你要做幾個小時同樣的事情:

if (hour < 0) { 
    hour += 24; 
} 
+0

哦,什麼是思念....謝謝......當你超速時發生這種情況 – lewis4u

+0

如果第二個日期溢出到下一個月/年,此方法是否可行? – marekful

+1

@marekful在這裏沒有日期。只有幾小時和幾分鐘。 – JJJ

相關問題