经过几个小时的编程,测试,终于把这个看起来比较复杂的算法搞清楚了。有一个需求是需要计算两个时间段内的工作日(周一到周五)的天数。当然不包括国家规定的假期。 无 ?phpfunction calcDays($start_date,$end_date){$start_time = strtotime($start_date);$e
经过几个小时的编程,测试,终于把这个看起来比较复杂的算法搞清楚了。有一个需求是需要计算两个时间段内的工作日(周一到周五)的天数。当然不包括国家规定的假期。
<?php function calcDays($start_date,$end_date){ $start_time = strtotime($start_date); $end_time = strtotime($end_date); $start_time_week = date('w',$start_time);//开始时间的星期数 $end_time_week = date('w',$end_time);//开始时间的星期数 $diff_day = round(($end_time-$start_time)/86400);//相差天数 $diff_week_day = $diff_day-($start_time_week==0?0:7-$start_time_week)-($end_time_week+1); $weeks = floor($diff_week_day/7); if($weeks<0){//如果在同一周(周日-周六) return $end_time_week-$start_time_week+($start_time_week?1:0)+($end_time_week==6?-1:0); }else{ return $weeks*5+($end_time_week==6?5:$end_time_week)+( $start_time_week>=1&&$start_time_week<=5 ?(6-$start_time_week):0); } } for ($i=1;$i<31;$i++){ for ($j=$i;$j<31;$j++){ $start = '2014-09-'.($i<10?'0'.$i:$i); $end = '2014-09-'.($j<10?'0'.$j:$j).' 23:59'; echo $start.' '.$end.' '. calcDays($start,$end),'<br/>'; } } /** 2014-09-01 2014-09-01 23:59 1 2014-09-01 2014-09-02 23:59 2 2014-09-01 2014-09-03 23:59 3 2014-09-01 2014-09-04 23:59 4 2014-09-01 2014-09-05 23:59 5 2014-09-01 2014-09-06 23:59 5 2014-09-01 2014-09-07 23:59 5 2014-09-01 2014-09-08 23:59 6 2014-09-01 2014-09-09 23:59 7 2014-09-01 2014-09-10 23:59 8 2014-09-01 2014-09-11 23:59 9 2014-09-01 2014-09-12 23:59 10 2014-09-01 2014-09-13 23:59 10 2014-09-01 2014-09-14 23:59 10 2014-09-01 2014-09-15 23:59 11 2014-09-01 2014-09-16 23:59 12 2014-09-01 2014-09-17 23:59 13 2014-09-01 2014-09-18 23:59 14 2014-09-01 2014-09-19 23:59 15 2014-09-01 2014-09-20 23:59 15 2014-09-01 2014-09-21 23:59 15 2014-09-01 2014-09-22 23:59 16 2014-09-01 2014-09-23 23:59 17 2014-09-01 2014-09-24 23:59 18 2014-09-01 2014-09-25 23:59 19 2014-09-01 2014-09-26 23:59 20 2014-09-01 2014-09-27 23:59 20 2014-09-01 2014-09-28 23:59 20 2014-09-01 2014-09-29 23:59 21 2014-09-01 2014-09-30 23:59 22 2014-09-02 2014-09-02 23:59 1 2014-09-02 2014-09-03 23:59 2 2014-09-02 2014-09-04 23:59 3 2014-09-02 2014-09-05 23:59 4 2014-09-02 2014-09-06 23:59 4 2014-09-02 2014-09-07 23:59 4 2014-09-02 2014-09-08 23:59 5 2014-09-02 2014-09-09 23:59 6 2014-09-02 2014-09-10 23:59 7 2014-09-02 2014-09-11 23:59 8 2014-09-02 2014-09-12 23:59 9 2014-09-02 2014-09-13 23:59 9 2014-09-02 2014-09-14 23:59 9 2014-09-02 2014-09-15 23:59 10 2014-09-02 2014-09-16 23:59 11 2014-09-02 2014-09-17 23:59 12 2014-09-02 2014-09-18 23:59 13 2014-09-02 2014-09-19 23:59 14 2014-09-02 2014-09-20 23:59 14 2014-09-02 2014-09-21 23:59 14 2014-09-02 2014-09-22 23:59 15 2014-09-02 2014-09-23 23:59 16 2014-09-02 2014-09-24 23:59 17 2014-09-02 2014-09-25 23:59 18 2014-09-02 2014-09-26 23:59 19 2014-09-02 2014-09-27 23:59 19 2014-09-02 2014-09-28 23:59 19 2014-09-02 2014-09-29 23:59 20 2014-09-02 2014-09-30 23:59 21 2014-09-03 2014-09-03 23:59 1 2014-09-03 2014-09-04 23:59 2 2014-09-03 2014-09-05 23:59 3 2014-09-03 2014-09-06 23:59 3 2014-09-03 2014-09-07 23:59 3 2014-09-03 2014-09-08 23:59 4 2014-09-03 2014-09-09 23:59 5 2014-09-03 2014-09-10 23:59 6 2014-09-03 2014-09-11 23:59 7 2014-09-03 2014-09-12 23:59 8 2014-09-03 2014-09-13 23:59 8 2014-09-03 2014-09-14 23:59 8 2014-09-03 2014-09-15 23:59 9 2014-09-03 2014-09-16 23:59 10 2014-09-03 2014-09-17 23:59 11 2014-09-03 2014-09-18 23:59 12 2014-09-03 2014-09-19 23:59 13 2014-09-03 2014-09-20 23:59 13 2014-09-03 2014-09-21 23:59 13 2014-09-03 2014-09-22 23:59 14 2014-09-03 2014-09-23 23:59 15 2014-09-03 2014-09-24 23:59 16 2014-09-03 2014-09-25 23:59 17 2014-09-03 2014-09-26 23:59 18 2014-09-03 2014-09-27 23:59 18 2014-09-03 2014-09-28 23:59 18 2014-09-03 2014-09-29 23:59 19 2014-09-03 2014-09-30 23:59 20 2014-09-04 2014-09-04 23:59 1 2014-09-04 2014-09-05 23:59 2 2014-09-04 2014-09-06 23:59 2 2014-09-04 2014-09-07 23:59 2 2014-09-04 2014-09-08 23:59 3 2014-09-04 2014-09-09 23:59 4 2014-09-04 2014-09-10 23:59 5 2014-09-04 2014-09-11 23:59 6 2014-09-04 2014-09-12 23:59 7 2014-09-04 2014-09-13 23:59 7 2014-09-04 2014-09-14 23:59 7 2014-09-04 2014-09-15 23:59 8 2014-09-04 2014-09-16 23:59 9 2014-09-04 2014-09-17 23:59 10 2014-09-04 2014-09-18 23:59 11 2014-09-04 2014-09-19 23:59 12 2014-09-04 2014-09-20 23:59 12 2014-09-04 2014-09-21 23:59 12 2014-09-04 2014-09-22 23:59 13 2014-09-04 2014-09-23 23:59 14 2014-09-04 2014-09-24 23:59 15 2014-09-04 2014-09-25 23:59 16 2014-09-04 2014-09-26 23:59 17 2014-09-04 2014-09-27 23:59 17 2014-09-04 2014-09-28 23:59 17 2014-09-04 2014-09-29 23:59 18 2014-09-04 2014-09-30 23:59 19 2014-09-05 2014-09-05 23:59 1 2014-09-05 2014-09-06 23:59 1 2014-09-05 2014-09-07 23:59 1 2014-09-05 2014-09-08 23:59 2 2014-09-05 2014-09-09 23:59 3 2014-09-05 2014-09-10 23:59 4 2014-09-05 2014-09-11 23:59 5 2014-09-05 2014-09-12 23:59 6 2014-09-05 2014-09-13 23:59 6 2014-09-05 2014-09-14 23:59 6 2014-09-05 2014-09-15 23:59 7 2014-09-05 2014-09-16 23:59 8 2014-09-05 2014-09-17 23:59 9 2014-09-05 2014-09-18 23:59 10 2014-09-05 2014-09-19 23:59 11 2014-09-05 2014-09-20 23:59 11 2014-09-05 2014-09-21 23:59 11 2014-09-05 2014-09-22 23:59 12 2014-09-05 2014-09-23 23:59 13 2014-09-05 2014-09-24 23:59 14 2014-09-05 2014-09-25 23:59 15 2014-09-05 2014-09-26 23:59 16 2014-09-05 2014-09-27 23:59 16 2014-09-05 2014-09-28 23:59 16 2014-09-05 2014-09-29 23:59 17 2014-09-05 2014-09-30 23:59 18 2014-09-06 2014-09-06 23:59 0 2014-09-06 2014-09-07 23:59 0 2014-09-06 2014-09-08 23:59 1 2014-09-06 2014-09-09 23:59 2 2014-09-06 2014-09-10 23:59 3 2014-09-06 2014-09-11 23:59 4 2014-09-06 2014-09-12 23:59 5 2014-09-06 2014-09-13 23:59 5 2014-09-06 2014-09-14 23:59 5 2014-09-06 2014-09-15 23:59 6 2014-09-06 2014-09-16 23:59 7 2014-09-06 2014-09-17 23:59 8 2014-09-06 2014-09-18 23:59 9 2014-09-06 2014-09-19 23:59 10 2014-09-06 2014-09-20 23:59 10 2014-09-06 2014-09-21 23:59 10 2014-09-06 2014-09-22 23:59 11 2014-09-06 2014-09-23 23:59 12 2014-09-06 2014-09-24 23:59 13 2014-09-06 2014-09-25 23:59 14 2014-09-06 2014-09-26 23:59 15 2014-09-06 2014-09-27 23:59 15 2014-09-06 2014-09-28 23:59 15 2014-09-06 2014-09-29 23:59 16 2014-09-06 2014-09-30 23:59 17 2014-09-07 2014-09-07 23:59 0 2014-09-07 2014-09-08 23:59 1 2014-09-07 2014-09-09 23:59 2 2014-09-07 2014-09-10 23:59 3 2014-09-07 2014-09-11 23:59 4 2014-09-07 2014-09-12 23:59 5 2014-09-07 2014-09-13 23:59 5 2014-09-07 2014-09-14 23:59 5 2014-09-07 2014-09-15 23:59 6 2014-09-07 2014-09-16 23:59 7 2014-09-07 2014-09-17 23:59 8 2014-09-07 2014-09-18 23:59 9 2014-09-07 2014-09-19 23:59 10 2014-09-07 2014-09-20 23:59 10 2014-09-07 2014-09-21 23:59 10 2014-09-07 2014-09-22 23:59 11 2014-09-07 2014-09-23 23:59 12 2014-09-07 2014-09-24 23:59 13 2014-09-07 2014-09-25 23:59 14 2014-09-07 2014-09-26 23:59 15 2014-09-07 2014-09-27 23:59 15 2014-09-07 2014-09-28 23:59 15 2014-09-07 2014-09-29 23:59 16 2014-09-07 2014-09-30 23:59 17 2014-09-08 2014-09-08 23:59 1 2014-09-08 2014-09-09 23:59 2 2014-09-08 2014-09-10 23:59 3 2014-09-08 2014-09-11 23:59 4 2014-09-08 2014-09-12 23:59 5 2014-09-08 2014-09-13 23:59 5 2014-09-08 2014-09-14 23:59 5 2014-09-08 2014-09-15 23:59 6 2014-09-08 2014-09-16 23:59 7 2014-09-08 2014-09-17 23:59 8 2014-09-08 2014-09-18 23:59 9 2014-09-08 2014-09-19 23:59 10 2014-09-08 2014-09-20 23:59 10 2014-09-08 2014-09-21 23:59 10 2014-09-08 2014-09-22 23:59 11 2014-09-08 2014-09-23 23:59 12 2014-09-08 2014-09-24 23:59 13 2014-09-08 2014-09-25 23:59 14 2014-09-08 2014-09-26 23:59 15 2014-09-08 2014-09-27 23:59 15 2014-09-08 2014-09-28 23:59 15 2014-09-08 2014-09-29 23:59 16 2014-09-08 2014-09-30 23:59 17 2014-09-09 2014-09-09 23:59 1 2014-09-09 2014-09-10 23:59 2 2014-09-09 2014-09-11 23:59 3 2014-09-09 2014-09-12 23:59 4 2014-09-09 2014-09-13 23:59 4 2014-09-09 2014-09-14 23:59 4 2014-09-09 2014-09-15 23:59 5 2014-09-09 2014-09-16 23:59 6 2014-09-09 2014-09-17 23:59 7 2014-09-09 2014-09-18 23:59 8 2014-09-09 2014-09-19 23:59 9 2014-09-09 2014-09-20 23:59 9 2014-09-09 2014-09-21 23:59 9 2014-09-09 2014-09-22 23:59 10 2014-09-09 2014-09-23 23:59 11 2014-09-09 2014-09-24 23:59 12 2014-09-09 2014-09-25 23:59 13 2014-09-09 2014-09-26 23:59 14 2014-09-09 2014-09-27 23:59 14 2014-09-09 2014-09-28 23:59 14 2014-09-09 2014-09-29 23:59 15 2014-09-09 2014-09-30 23:59 16 2014-09-10 2014-09-10 23:59 1 2014-09-10 2014-09-11 23:59 2 2014-09-10 2014-09-12 23:59 3 2014-09-10 2014-09-13 23:59 3 2014-09-10 2014-09-14 23:59 3 2014-09-10 2014-09-15 23:59 4 2014-09-10 2014-09-16 23:59 5 2014-09-10 2014-09-17 23:59 6 2014-09-10 2014-09-18 23:59 7 2014-09-10 2014-09-19 23:59 8 2014-09-10 2014-09-20 23:59 8 2014-09-10 2014-09-21 23:59 8 2014-09-10 2014-09-22 23:59 9 2014-09-10 2014-09-23 23:59 10 2014-09-10 2014-09-24 23:59 11 2014-09-10 2014-09-25 23:59 12 2014-09-10 2014-09-26 23:59 13 2014-09-10 2014-09-27 23:59 13 2014-09-10 2014-09-28 23:59 13 2014-09-10 2014-09-29 23:59 14 2014-09-10 2014-09-30 23:59 15 2014-09-11 2014-09-11 23:59 1 2014-09-11 2014-09-12 23:59 2 2014-09-11 2014-09-13 23:59 2 2014-09-11 2014-09-14 23:59 2 2014-09-11 2014-09-15 23:59 3 2014-09-11 2014-09-16 23:59 4 2014-09-11 2014-09-17 23:59 5 2014-09-11 2014-09-18 23:59 6 2014-09-11 2014-09-19 23:59 7 2014-09-11 2014-09-20 23:59 7 2014-09-11 2014-09-21 23:59 7 2014-09-11 2014-09-22 23:59 8 2014-09-11 2014-09-23 23:59 9 2014-09-11 2014-09-24 23:59 10 2014-09-11 2014-09-25 23:59 11 2014-09-11 2014-09-26 23:59 12 2014-09-11 2014-09-27 23:59 12 2014-09-11 2014-09-28 23:59 12 2014-09-11 2014-09-29 23:59 13 2014-09-11 2014-09-30 23:59 14 2014-09-12 2014-09-12 23:59 1 2014-09-12 2014-09-13 23:59 1 2014-09-12 2014-09-14 23:59 1 2014-09-12 2014-09-15 23:59 2 2014-09-12 2014-09-16 23:59 3 2014-09-12 2014-09-17 23:59 4 2014-09-12 2014-09-18 23:59 5 2014-09-12 2014-09-19 23:59 6 2014-09-12 2014-09-20 23:59 6 2014-09-12 2014-09-21 23:59 6 2014-09-12 2014-09-22 23:59 7 2014-09-12 2014-09-23 23:59 8 2014-09-12 2014-09-24 23:59 9 2014-09-12 2014-09-25 23:59 10 2014-09-12 2014-09-26 23:59 11 2014-09-12 2014-09-27 23:59 11 2014-09-12 2014-09-28 23:59 11 2014-09-12 2014-09-29 23:59 12 2014-09-12 2014-09-30 23:59 13 2014-09-13 2014-09-13 23:59 0 2014-09-13 2014-09-14 23:59 0 2014-09-13 2014-09-15 23:59 1 2014-09-13 2014-09-16 23:59 2 2014-09-13 2014-09-17 23:59 3 2014-09-13 2014-09-18 23:59 4 2014-09-13 2014-09-19 23:59 5 2014-09-13 2014-09-20 23:59 5 2014-09-13 2014-09-21 23:59 5 2014-09-13 2014-09-22 23:59 6 2014-09-13 2014-09-23 23:59 7 2014-09-13 2014-09-24 23:59 8 2014-09-13 2014-09-25 23:59 9 2014-09-13 2014-09-26 23:59 10 2014-09-13 2014-09-27 23:59 10 2014-09-13 2014-09-28 23:59 10 2014-09-13 2014-09-29 23:59 11 2014-09-13 2014-09-30 23:59 12 2014-09-14 2014-09-14 23:59 0 2014-09-14 2014-09-15 23:59 1 2014-09-14 2014-09-16 23:59 2 2014-09-14 2014-09-17 23:59 3 2014-09-14 2014-09-18 23:59 4 2014-09-14 2014-09-19 23:59 5 2014-09-14 2014-09-20 23:59 5 2014-09-14 2014-09-21 23:59 5 2014-09-14 2014-09-22 23:59 6 2014-09-14 2014-09-23 23:59 7 2014-09-14 2014-09-24 23:59 8 2014-09-14 2014-09-25 23:59 9 2014-09-14 2014-09-26 23:59 10 2014-09-14 2014-09-27 23:59 10 2014-09-14 2014-09-28 23:59 10 2014-09-14 2014-09-29 23:59 11 2014-09-14 2014-09-30 23:59 12 2014-09-15 2014-09-15 23:59 1 2014-09-15 2014-09-16 23:59 2 2014-09-15 2014-09-17 23:59 3 2014-09-15 2014-09-18 23:59 4 2014-09-15 2014-09-19 23:59 5 2014-09-15 2014-09-20 23:59 5 2014-09-15 2014-09-21 23:59 5 2014-09-15 2014-09-22 23:59 6 2014-09-15 2014-09-23 23:59 7 2014-09-15 2014-09-24 23:59 8 2014-09-15 2014-09-25 23:59 9 2014-09-15 2014-09-26 23:59 10 2014-09-15 2014-09-27 23:59 10 2014-09-15 2014-09-28 23:59 10 2014-09-15 2014-09-29 23:59 11 2014-09-15 2014-09-30 23:59 12 2014-09-16 2014-09-16 23:59 1 2014-09-16 2014-09-17 23:59 2 2014-09-16 2014-09-18 23:59 3 2014-09-16 2014-09-19 23:59 4 2014-09-16 2014-09-20 23:59 4 2014-09-16 2014-09-21 23:59 4 2014-09-16 2014-09-22 23:59 5 2014-09-16 2014-09-23 23:59 6 2014-09-16 2014-09-24 23:59 7 2014-09-16 2014-09-25 23:59 8 2014-09-16 2014-09-26 23:59 9 2014-09-16 2014-09-27 23:59 9 2014-09-16 2014-09-28 23:59 9 2014-09-16 2014-09-29 23:59 10 2014-09-16 2014-09-30 23:59 11 2014-09-17 2014-09-17 23:59 1 2014-09-17 2014-09-18 23:59 2 2014-09-17 2014-09-19 23:59 3 2014-09-17 2014-09-20 23:59 3 2014-09-17 2014-09-21 23:59 3 2014-09-17 2014-09-22 23:59 4 2014-09-17 2014-09-23 23:59 5 2014-09-17 2014-09-24 23:59 6 2014-09-17 2014-09-25 23:59 7 2014-09-17 2014-09-26 23:59 8 2014-09-17 2014-09-27 23:59 8 2014-09-17 2014-09-28 23:59 8 2014-09-17 2014-09-29 23:59 9 2014-09-17 2014-09-30 23:59 10 2014-09-18 2014-09-18 23:59 1 2014-09-18 2014-09-19 23:59 2 2014-09-18 2014-09-20 23:59 2 2014-09-18 2014-09-21 23:59 2 2014-09-18 2014-09-22 23:59 3 2014-09-18 2014-09-23 23:59 4 2014-09-18 2014-09-24 23:59 5 2014-09-18 2014-09-25 23:59 6 2014-09-18 2014-09-26 23:59 7 2014-09-18 2014-09-27 23:59 7 2014-09-18 2014-09-28 23:59 7 2014-09-18 2014-09-29 23:59 8 2014-09-18 2014-09-30 23:59 9 2014-09-19 2014-09-19 23:59 1 2014-09-19 2014-09-20 23:59 1 2014-09-19 2014-09-21 23:59 1 2014-09-19 2014-09-22 23:59 2 2014-09-19 2014-09-23 23:59 3 2014-09-19 2014-09-24 23:59 4 2014-09-19 2014-09-25 23:59 5 2014-09-19 2014-09-26 23:59 6 2014-09-19 2014-09-27 23:59 6 2014-09-19 2014-09-28 23:59 6 2014-09-19 2014-09-29 23:59 7 2014-09-19 2014-09-30 23:59 8 2014-09-20 2014-09-20 23:59 0 2014-09-20 2014-09-21 23:59 0 2014-09-20 2014-09-22 23:59 1 2014-09-20 2014-09-23 23:59 2 2014-09-20 2014-09-24 23:59 3 2014-09-20 2014-09-25 23:59 4 2014-09-20 2014-09-26 23:59 5 2014-09-20 2014-09-27 23:59 5 2014-09-20 2014-09-28 23:59 5 2014-09-20 2014-09-29 23:59 6 2014-09-20 2014-09-30 23:59 7 2014-09-21 2014-09-21 23:59 0 2014-09-21 2014-09-22 23:59 1 2014-09-21 2014-09-23 23:59 2 2014-09-21 2014-09-24 23:59 3 2014-09-21 2014-09-25 23:59 4 2014-09-21 2014-09-26 23:59 5 2014-09-21 2014-09-27 23:59 5 2014-09-21 2014-09-28 23:59 5 2014-09-21 2014-09-29 23:59 6 2014-09-21 2014-09-30 23:59 7 2014-09-22 2014-09-22 23:59 1 2014-09-22 2014-09-23 23:59 2 2014-09-22 2014-09-24 23:59 3 2014-09-22 2014-09-25 23:59 4 2014-09-22 2014-09-26 23:59 5 2014-09-22 2014-09-27 23:59 5 2014-09-22 2014-09-28 23:59 5 2014-09-22 2014-09-29 23:59 6 2014-09-22 2014-09-30 23:59 7 2014-09-23 2014-09-23 23:59 1 2014-09-23 2014-09-24 23:59 2 2014-09-23 2014-09-25 23:59 3 2014-09-23 2014-09-26 23:59 4 2014-09-23 2014-09-27 23:59 4 2014-09-23 2014-09-28 23:59 4 2014-09-23 2014-09-29 23:59 5 2014-09-23 2014-09-30 23:59 6 2014-09-24 2014-09-24 23:59 1 2014-09-24 2014-09-25 23:59 2 2014-09-24 2014-09-26 23:59 3 2014-09-24 2014-09-27 23:59 3 2014-09-24 2014-09-28 23:59 3 2014-09-24 2014-09-29 23:59 4 2014-09-24 2014-09-30 23:59 5 2014-09-25 2014-09-25 23:59 1 2014-09-25 2014-09-26 23:59 2 2014-09-25 2014-09-27 23:59 2 2014-09-25 2014-09-28 23:59 2 2014-09-25 2014-09-29 23:59 3 2014-09-25 2014-09-30 23:59 4 2014-09-26 2014-09-26 23:59 1 2014-09-26 2014-09-27 23:59 1 2014-09-26 2014-09-28 23:59 1 2014-09-26 2014-09-29 23:59 2 2014-09-26 2014-09-30 23:59 3 2014-09-27 2014-09-27 23:59 0 2014-09-27 2014-09-28 23:59 0 2014-09-27 2014-09-29 23:59 1 2014-09-27 2014-09-30 23:59 2 2014-09-28 2014-09-28 23:59 0 2014-09-28 2014-09-29 23:59 1 2014-09-28 2014-09-30 23:59 2 2014-09-29 2014-09-29 23:59 1 2014-09-29 2014-09-30 23:59 2 2014-09-30 2014-09-30 23:59 1 */