要設置9~18點上下班,中午一小時午休,刨掉週六日,網上找了找沒找到合適的方法,本身寫了一個javascript
<script type="text/javascript"> function countSc(str1,str2){ if(!str1 || !str2){return 0;} //開始構造兩個日期對象 var datetime1 = new Date(), datetime2 = new Date(); datetime1.setFullYear(str1.substr(0,4),str1.substr(5,2)-1,str1.substr(8,2)); datetime2.setFullYear(str2.substr(0,4),str2.substr(5,2)-1,str2.substr(8,2)); datetime1.setMilliseconds(0); datetime2.setMilliseconds(0); datetime1.setHours(str1.substr(11,2),0,0); datetime2.setHours(str2.substr(11,2),0,0); if(datetime1.getDay() == 0 || datetime1.getDay() == 6){ datetime1.setDate(datetime1.getDate() - 1); datetime1.setHours(23,0,0); } if(datetime1.getDay() == 0 || datetime1.getDay() == 6){ datetime1.setDate(datetime1.getDate() - 1); datetime1.setHours(23,0,0); } if(datetime2.getDay() == 0 || datetime2.getDay() == 6){ datetime2.setDate(datetime2.getDate() + 1); datetime2.setHours(0,0,0); } if(datetime2.getDay() == 0 || datetime2.getDay() == 6){ datetime2.setDate(datetime2.getDate() + 1); datetime2.setHours(0,0,0); } var travelHours = 0; var datetime3 = datetime1; for(var i = 0;i < 60; i++){ var sd = datetime1.getDate(),ed = datetime2.getDate(); if(sd == ed - 1){ break; } datetime1.setDate(datetime1.getDate() + 1); if(datetime1.getDay() > 0 && datetime1.getDay() < 6){ travelHours += 8; } } if (parseInt(datetime3.getHours()) <= 9) { travelHours += 8; }else { if (parseInt(datetime3.getHours())<= 12) { travelHours += 12 - parseInt(datetime3.getHours()) + 5; }else { if (parseInt(datetime3.getHours()) <= 18) { travelHours += 18 - parseInt(datetime3.getHours()); } } } if (parseInt(datetime2.getHours()) >= 18) { travelHours += 8; }else { if (parseInt(datetime2.getHours()) >= 13){ travelHours += 3 + parseInt(datetime2.getHours()) - 13; }else { if (parseInt(datetime2.getHours()) >= 9) { travelHours += parseInt(datetime2.getHours()) - 9; } } } return travelHours; } </script>