在我的应用程序中,我希望显示某个日期而不计算周末天数。
所以我有促销开始的日期:2016-11-03
。促销期为45
天。
$value['invesdate'] // 2016-11-03
$businessdays= date('Y-m-d', strtotime($value['invesdate'] . ' +45 day'));
宣传开始2016-11-03
加上(+)45
天= 2016-12-15
这是错误的日期,因为我计算和周末天。
corrct日期为2016-01-05
如何删除周末计算天数?
答案 0 :(得分:2)
$startDate = '2016-11-03';
$numberofdays = 45;
$d = new DateTime( $startDate );
$t = $d->getTimestamp();
// loop for X days
for($i=0; $i<$numberofdays; $i++){
// add 1 day to timestamp
$addDay = 86400;
// get what day it is next day
$nextDay = date('w', ($t+$addDay));
// if it's Saturday or Sunday get $i-1
if($nextDay == 0 || $nextDay == 6) {
$i--;
}
// modify timestamp, add 1 day
$t = $t+$addDay;
}
$d->setTimestamp($t);
echo $d->format( 'Y-m-d' ). "\n";
答案 1 :(得分:-1)
另一种最简单的方法:
$businessdays = date('Y-m-d', strtotime($value['invesdate'] . ' +45 weekdays'));
echo $businessdays;
PHP文档here中提供了许多预定义的引用。