当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » PHP  » 网络编程
童学芬

计算工作日的天数

童学芬 发布于 2014年09月04日 22时, 4评/876阅
分享到: 
收藏 +0
2
经过几个小时的编程,测试,终于把这个看起来比较复杂的算法搞清楚了。有一个需求是需要计算两个时间段内的工作日(周一到周五)的天数。当然不包括国家规定的假期。
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [文件] test.php ~ 15KB     下载(7)     跳至 [1] [全屏预览]

<?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.'&nbsp;'.$end.'&nbsp;'. 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
 */


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(4)

  • 1楼:不要点击我 发表于 2014-09-05 10:17 回复此评论
    还有加班, 怎么算
  • 2楼:小薇 发表于 2014-09-05 10:34 回复此评论
    节日算进去了?
  • 3楼:老陌 发表于 2014-09-05 11:25 回复此评论
    function calcDays($start_date, $end_date){
    $start_time = strtotime($start_date);
    $end_time = strtotime($end_date);
    $days = ceil( ($end_time - $start_time) / 86400 );

    $remainder = $days % 7;
    $workers = floor($days / 7) * 5;

    $end_week = date('w', $end_time);

    // 星期天 转换为 星期 7
    $end_week == 0 && $end_week = 7;

    /*
    * $end_week 为 周六或周天时,去掉1或2天
    * 等价于 : 
    * $poor = $end_week - 5;
    * $workers = ($poor > 0) ? ($remainder > $poor ? $remainder - $poor : 0) : $remainder;
    */
    $workers += min( max(0, $remainder - $end_week + 5), $remainder);
     
    return $workers;
    }

    写个简化的。
  • 4楼:iyangyuan 发表于 2014-09-09 09:22 回复此评论
    这个。。法定节假日呢。。