展开全部
var startHour = 8;
var startMin = 30;
var endHour = 17;
var endMin = 30;
function getOffsetTime(startHour, startMin, endHour, endMin){
var date = new Date();
date.setHours(startHour);
date.setMinutes(startMin);
var startTime = parseInt(date.valueOf() / 1000, 10);
date.setHours(endHour);
date.setMinutes(endMin);
var endTime = parseInt(date.valueOf() / 1000, 10);
var result = {};
result.hours = (endTime - startTime) / 3600;
result.minutes = ((endTime - startTime) % 3600) / 60;
return result;
}
var timeOffset = getOffsetTime(startHour, startMin, endHour, endMin);
timeOffset的值为
Object { hours:9, minutes:0}
如果午休1小时的话,把结果中的hours-1就行了
更多追问追答
追问
周日周末也要去掉的。。。
追答
亲,这个是两件事情。以上的函数只是计算1天中的两个时间点间相差的小时数。
如果你需要去掉午休,可以对函数的计算结果进行补充计算
如果要去掉周末,那是你外层循环的事情,你需要自行计算有多少工作日。
这样,我把函数给你改一下,让它返回分钟数
/**
* 该函数计算同一天内的两个时间点间相差多少分钟
* 4个参数分别为几点开始,几分开始,几点结束,几分结束
* 返回值为整数,表示分钟数,当开始结束大于结束时间时返回负值
*/
function getOffsetTime(startHour, startMin, endHour, endMin){
var date = new Date();
date.setHours(startHour);
date.setMinutes(startMin);
var startTime = parseInt(date.valueOf() / 1000, 10);
date.setHours(endHour);
date.setMinutes(endMin);
var endTime = parseInt(date.valueOf() / 1000, 10);
var result = {};
return parseInt((endTime - startTime) / 60, 10);
}
这样做这个函数就会返回一个工作日的工作分钟数了,你自己去计算有多少工作日,然后工作日数量*工作分钟就得到总分钟数了。
亲,不可以太贪心哈,你一点悬赏都没有,我可是连代码都给你写出来了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询