我想用$date
减去$interval
,请注意$interval
是工作日的数量。以下是一些示例(格式:yyyy-mm-dd)
$date
= 2013-10-07,$interval
= 5,$result
= 2013-09-30 $date
= 2013-10-07,$interval
= 1,$result
= 2013-10-04 到目前为止我的代码
$div = floor($interval / 5);
$mod = $interval % 5;
$workdays = $div * 7 + $mod;
$result = date("Y-m-d", strtotime($date . "-$workdays days"));
$date
= 2013-10-07,$interval
= 5,$result
= 2013-09-30 =>真$date
= 2013-10-07,$interval
= 1,$result
= 2013-10-06 =>的假 请指点我解决这个问题,谢谢。
答案 0 :(得分:2)
如果您将工作日定义为 MON-FRI ,那么您只需使用weekdays
关键字strtotime
即可。导致strtotime("-7 weekdays")
之类的内容
这将排除星期六和星期日。
或者关注您的代码:
$workdays = 5;
$result = date("Y-m-d", strtotime($date . "-$workdays weekdays"));
此答案的问题
答案 1 :(得分:1)
var_dump( subtractWorkDays('2013-10-07', 5) ); # 2013-09-30
var_dump( subtractWorkDays('2013-10-07', 1) ); # 2013-10-04
function subtractWorkDays($date, $days) {
return date_create($date)->modify("-$days weekdays")->format('Y-m-d');
}