2 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
首先我從這個問題中復制了解決方案,然后我發(fā)表了一個if聲明來檢查最后的日期$endDate是否是星期天。如果是,我將他們的小時數(shù)添加到間隔中的總小時數(shù)/計數(shù)中。
function quantitySundays($startDate, $endDate)
{
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$days = $start->diff($end, true)->days;
$sundays = intval($days / 7) + ($start->format('N') + $days % 7 >= 7);
if($end->format('D') == 'Sun') {
return $sundays * 24 + $end->format('H');
} else {
return $sundays * 24;
}
}
唯一的修改是您必須添加H:i:s作為函數(shù)參數(shù)傳遞的日期,如下所示'2019-09-15 14:00:00':
這是你想要的?

TA貢獻1943條經(jīng)驗 獲得超7個贊
我看你已經(jīng)得到了很好的答案。我也試圖解決它,這是我的代碼。
$d1 = new DateTime('2019-08-26');
$d2 = new DateTime('2019-09-02');
$first_day = $d1->format('l');
$days = array(
'Monday' => 6,
'Tuesday' => 5,
'Wednesday' => 4,
'Thursday' => 3,
'Friday' => 2,
'Saturday' => 1,
'Sunday' => 7,
);
$hours = 0;
$sunday_count = 0;
while($d1 <= $d2){
if($days[$first_day] == 7){
$hours += 24;
$sunday_count++;
$temp = '+'.$days[$first_day].' day';
$d1->modify($temp);
$first_day = $d1->format('l');
}else{
$temp = '+'.$days[$first_day].' day';
$d1->modify($temp);
$first_day = $d1->format('l');
if($d1 <= $d2){
$hours += 24;
$sunday_count++;
}else{
break;
}
}
}
echo 'total hours : '.$hours.'<br>';
echo 'Sunday count: '.$sunday_count;
- 2 回答
- 0 關注
- 194 瀏覽
添加回答
舉報