我想用$interval
减去$date
,请注意,$interval
是工作日数。以下是一些示例(格式:yyyy-mm-dd(
-
$date
= 2013-10-07,$interval
= 5,$result
= 2013-09-30 -
$interval
= 1,$result
= 2013-10-04
$date
= 2013-10-07, 到目前为止我的代码
$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 => true -
$interval
= 1,$result
= 2013-10-06 => 假
$date
= 2013-10-07, 请给我解决这个问题的方向,谢谢。
如果您将工作日定义为 MON-FRI,那么您需要做的就是使用 weekdays
关键字 strtotime
.导致类似strtotime("-7 weekdays")
不包括周六和周日。
或者按照您的代码:
$workdays = 5;
$result = date("Y-m-d", strtotime($date . "-$workdays weekdays"));
此答案的问题
https://bugs.php.net/bug.php?id=63521
使用示例:
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');
}