PHP100 2019-03-27
代码如下:
/* | Author: Yang Yu <[email protected]> | @param char|int $start_date 一个有效的日期格式,例如:20091016,2009-10-16 | @param char|int $end_date 同上 | @return 给定日期之间的周末天数 */ function get_weekend_days($start_date,$end_date){ if (strtotime($start_date) > strtotime($end_date)) list($start_date, $end_date) = array($end_date, $start_date); $start_reduce = $end_add = 0; $start_N = date('N',strtotime($start_date)); $start_reduce = ($start_N == 7) ? 1 : 0; $end_N = date('N',strtotime($end_date)); in_array($end_N,array(6,7)) && $end_add = ($end_N == 7) ? 2 : 1; $days = abs(strtotime($end_date) - strtotime($start_date))/86400 + 1; return floor(($days + $start_N - 1 - $end_N) / 7) * 2 - $start_reduce + $end_add; }
代码如下:
function get_weekend_days($start_date,$end_date,$is_workday = false){ if (strtotime($start_date) > strtotime($end_date)) list($start_date, $end_date) = array($end_date, $start_date); $start_reduce = $end_add = 0; $start_N = date('N',strtotime($start_date)); $start_reduce = ($start_N == 7) ? 1 : 0; $end_N = date('N',strtotime($end_date)); in_array($end_N,array(6,7)) && $end_add = ($end_N == 7) ? 2 : 1; $alldays = abs(strtotime($end_date) - strtotime($start_date))/86400 + 1; $weekend_days = floor(($alldays + $start_N - 1 - $end_N) / 7) * 2 - $start_reduce + $end_add; if ($is_workday){ $workday_days = $alldays - $weekend_days; return $workday_days; } return $weekend_days; }