jquery简单计算请假总时长
适用环境:请假时长小于等于0.5天的计算小时,否则按1、2、3天直接累加
$(function () { var start = "2017-12-21 08:00"; var end = "2017-12-21 08:00"; alert(getAllDays(start, end)); }); //请假总时长(4小时为半天,上午上班时间8点,下午下班时间18点,可以按照实际再行更改) function getAllDays(start, end) { var day = 0; //小时 var hours = getAllHours(start, end) if (hours <= 4) { day = (hours / 8); } else if (hours > 4 && hours < (4 + 4 + 4)) { day = 1; } else { day = (hours / 8); } if (day < 0) { day = 0; } return day.toFixed(2); } //获取总小时数 function getAllHours(start, end) { var d1 = new Date(start); var d2 = new Date(end); var startdate = start.split(' ')[0]; var enddate = end.split(' ')[0]; //说明是一天,则只需要判断小时 if (startdate == enddate) { return (d2 - d1) / 1000 / 60 / 60; } //开始时间大于结束时间 else if (startdate > enddate) { return 0; } else { var sd1 = new Date(startdate); var sd2 = new Date(enddate); //获取相差天数 var days = (sd2 - sd1) / 1000 / 60 / 60 / 24; //开始时间的小时 var startHour = start.split(' ')[1].split(':')[0]; //大于晚上18点,减一天 if (startHour > 18) { days = days - 1; } //结束时间的小时 var endHour = end.split(' ')[1].split(':')[0]; //大于中午14点 if (endHour >= 14) { days = days + 1; } return days * 8; } }

浙公网安备 33010602011771号