2013-12-12 38 views
0

我需要計算時差24小時時間。 有些事情似乎是錯誤的代碼計算從時間差 - 總工作時間

if (shiftToMin >= shiftFromMin){ 
     shiftTotalMin = shiftToMin - shiftFromMin; 
     if(shiftFromHr < shiftToHr){ 
      shiftTotalHr = shiftToHr - shiftFromHr; 
     }else{ 
      shiftTotalHr = (24 - shiftFromHr) + shiftToHr; 
     } 
    }else{ 
     shiftTotalMin = 60 - (shiftFromMin - shiftToMin); 
     if(shiftFromHr < shiftToHr){ 
      shiftTotalHr = ShiftToHr - shiftFromHr; 
     }else{ 
      shiftTotalHr = (24 - shiftFromHr) + shiftToHr; 
     } 
     shiftTotalHr = shiftTotalHr - 1; 
    } 
+0

精品!輸出是什麼?期望的輸出是什麼? #ThingsWeNeedToKnow –

+0

時間差喜歡,總工作時間 – epynic

回答

0

制定並工作

// Time Difference Cal 
     if (shiftFromHr <= shiftToHr){ 
      shiftTotalHr = shiftToHr - shiftFromHr; 
     }else{ 
      shiftTotalHr = (24 - shiftFromHr) + shiftToHr; 
     } 

     if (shiftFromMin <= shiftToMin){ 
      shiftTotalMin = shiftToMin - shiftFromMin; 
     }else{ 
      shiftTotalMin = 60 - (shiftFromMin - shiftToMin); 
      shiftTotalHr = shiftTotalHr - 1; 
     } 
// Total time difference shiftTotalHr : shiftTotalMin 

Thanks All :)

1

向我們展示你的full code瞭解,如果你想calculatetwo datestime difference的試試這個,

function time_diff(start, end) { 
    sdate = new Date(start);edate = new Date(end); 
    var sd = [];var ed = []; 
    sd[0] = sdate.getFullYear(); 
    sd[1] = sdate.getMonth(); 
    sd[2] = sdate.getDate(); 
    sd[3] = sdate.getHours(); 
    sd[4] = sdate.getMinutes(); 
    ed[0] = edate.getFullYear(); 
    ed[1] = edate.getMonth(); 
    ed[2] = edate.getDate(); 
    ed[3] = edate.getHours(); 
    ed[4] = edate.getMinutes(); 
    var startDate = new Date(sd[0], sd[1], sd[2], sd[3], sd[4], 0); 
    var endDate = new Date(ed[0], ed[1], ed[2], ed[3], ed[4], 0); 
    var diff = endDate.getTime() - startDate.getTime(); 
    var hours = Math.floor(diff/1000/60/60); 
    diff -= parseInt(hours) * 1000 * 60 * 60; 
    var minutes = Math.floor(diff/1000/60); 
    if (hours < 0) { 
     return 'error'; 
    } 
    return (hours <= 9 ? "0" : "") + hours + ":" + (minutes <= 9 ? "0" : "") + minutes; 
} 
alert(time_diff('12/11/2013 10:25:00', '12/12/2013 11:25:00')); 
alert(time_diff('12/12/2013 10:25:00', '12/12/2013 11:50:00')); 

Demo

+0

嘿,夥計,感謝您的照顧和時間,Ur真棒,我將需要此代碼有一天 – epynic

1

使用date構造函數的getTime方法。它提供了通過毫秒的總數(自1970年以來,我認爲)

var shiftStart = new Date(0,0,0,shiftFromHour,shiftFromMin); 
var shiftEnd = new Date(0,0,0,shiftToHour,shiftToMin);  
var msDiff = shiftEnd.getTime()-shiftStart.getTime(); 
var hours = Math.floor(msDiff/(1000*60*60)); 

hours將包含工時數shiftStartshiftEnd之間(均爲Date實例)

+0

忘記提及,shiftToHr,shiftToMin ...是從文本框val() – epynic

+0

固定(假設shiftTo ....等都是整數) – tewathia