如何获得$ date + 5排除周末?

时间:2016-11-23 12:31:29

标签: php date

我有一些页面需要在将来设置日期(由变量设置的2天或5天)。 这个日期必须只计算周一至周五,不包括周末。

到目前为止我所拥有的($ tts是2或5的变量,具体取决于页面);

$Today = date('N:m:y');
$NewDate = date('l \t\h\e jS \o\f F',strtotime($Today) + (24*3600*$tts));
$businessDays = [1, 2, 3, 4, 5]; 
echo $NewDate;

这不包括周末日。 我曾尝试使用$ businessDays,但我不确定如何使用它来计算$ Today和$ NewDate之间的天数

4 个答案:

答案 0 :(得分:5)

尝试:

$plusFive = strtotime( '+5 weekday' );
$plusFive = date( 'Y-m-d', $plusFive );

strtotime还采用了第二个参数,它可能是+5的基础。

答案 1 :(得分:1)

试试这段代码 它应该提前一天工作日。

$Today = date('N:m:y');
$NewDate = date('l \t\h\e jS \o\f F',strtotime($Today . '+' . $tts .' weekdays'));
echo $NewDate;

https://3v4l.org/4SX0m

答案 2 :(得分:1)

日期时间选项:

<?php
$start = new DateTime();
date_add( $start, date_interval_create_from_date_string( '5 weekdays' ) );
echo $start->format( 'd-m-Y' );

答案 3 :(得分:0)

您可以查看周末,然后在周六和周日添加2天,如下所示:

$busDays = 3;
$day = date("w");
if( $day > 2 && $day <= 5 ) { /* if between Wed and Fri */
  $day += 2; /* add 2 more days for weekend */
}
$day += $busDays;