我使用PHP的 DateTime :: diff 功能,花费数周时间。
这是我的代码:
$start = new DateTime('2017-06-05');
$end = new DateTime('2017-06-07');
$end->modify('+1 day');
$interval = $end->diff($start);
// total days
$days = $interval->days;
// create an iterateable period of date (P1D equates to 1 day)
$period = new DatePeriod($start, new DateInterval('P1D'), $end);
// best stored as array, so you can add more than one
$holidays = array('2017-09-07');
foreach($period as $dt) {
$curr = $dt->format('D');
// substract if Saturday or Sunday
if ($curr == 'Sat' || $curr == 'Sun') {
$days--;
}
// (optional) for the updated question
elseif (in_array($dt->format('Y-m-d'), $holidays)) {
$days--;
}
}
if($days <= 7) {
echo $days." day".($days > 1 ? 's' : '');
}
// I'm stucked here
我可以获得工作日的数量,但我无法获得数月和数周的时间 有人帮我这个吗?
答案 0 :(得分:0)
试试此代码
$interval = $date1->diff($date2);
echo $interval->m // month
$week = floor($date1->diff($date2)->days/7);
echo $week; //week