参数为时间戳 function workDays($start, $end) { $end < $start && exit; $double = ($end - $start) / (7 * 24 * 3600); $double = floor($double); $start_weekday = date('w', $start); $end_weekday = date('w', $end); //开始结束时间去掉周末 if($start_weekday==6 || $start_weekday==0) { if ($start_weekday == 6) { $start = strtotime(date('Y-m-d', $start)) + 2 * 24 * 3600; } if ($start_weekday == 0) { $start = strtotime(date('Y-m-d', $start)) + 1 * 24 * 3600; } $start_weekday = date('w', $start); } if($end_weekday==6 || $end_weekday==0) { if ($end_weekday == 6) { $end = strtotime(date('Y-m-d', $end)); } if ($end_weekday == 0) { $end = strtotime(date('Y-m-d', $end)) - 24 * 3600; } $end_weekday = date('w', $end); } //获取整天的秒数 $weekday = $start_weekday > $end_weekday ? $end_weekday + 5 : $end_weekday; $whole_days = $double * 5 + $weekday - $start_weekday; $whole_days = date('H', $start)>date('H', $end) ? $whole_days-1 : $whole_days; $seconds = $whole_days * 24 * 3600; //获取不到一整天的秒数 $left_second = ($end - $start) % (24 * 3600); //总秒数 $data = $seconds + $left_second; //秒数转换成 天/时/分 $day = floor(($data) / 86400); $hour = floor(($data) % 86400 / 3600); $minute = floor(($data) % 86400 / 60); $result = ((!empty($day)) ? ($day . '天') : '') . ((!empty($day) && !empty($hour)) ? (($hour) . '小时') : (!empty($hour) ? ($hour . '小时') : '')) . ((!empty($hour)) ? (($minute - $hour * 60) . '分') : (!empty($minute) ? ($minute . '分') : '')); return $result; }
来源:https://blog.csdn.net/jjk_2333/article/details/100124107