要设置9~18点上下班,中午一小时午休,刨掉周六日,网上找了找没找到合适的方法,自己写了一个
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;
}