在我的申请中,我想显示一个特定的日期,而不计算周末的天数。
所以我有时间开始升职:2016-11-03。促销活动持续到45日。
$value['invesdate'] // 2016-11-03
$businessdays= date('Y-m-d', strtotime($value['invesdate'] . ' +45 day'));
开始推广2016-11-03 + (+) 45 days = 2016-12-15
这是错误的日期,因为我计算和周末。相关日期是2016-01-05
如何删除计算周末的天数?
发布于 2016-11-03 05:54:30
$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";演示 http://phpio.net/s/azq
发布于 2016-11-03 06:01:10
另一种最短的方法是:
$businessdays = date('Y-m-d', strtotime($value['invesdate'] . ' +45 weekdays'));
echo $businessdays;PHPDocuments这里中提供了许多预定义的引用。
https://stackoverflow.com/questions/40394663
复制相似问题