Home > php教程 > php手册 > 计算工作日的天数

计算工作日的天数

WBOY
Release: 2016-06-06 19:35:18
Original
1572 people have browsed it

经过几个小时的编程,测试,终于把这个看起来比较复杂的算法搞清楚了。有一个需求是需要计算两个时间段内的工作日(周一到周五)的天数。当然不包括国家规定的假期。 无 ?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
 */
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template