PHP DateTime Разница (часы, дни, недели, месяцы)

Я создаю функцию PHP, которая будет возвращать разницу между двумя датами в формате: 2 месяца, 3 недели, 6 дней, 3 часа. Я пытался использовать класс PHP DateTime, но он возвращает только месяцы, дни и часы, и я не могу найти способ рассчитать Недели.

Это моя функция:

public function DateTimeDifference($FromDate, $ToDate) {
$FromDate = new DateTime($FromDate);
$ToDate   = new DateTime($ToDate);
$Interval = $FromDate->diff($ToDate);

$Difference["Hours"] = $Interval->h;
$Difference["Days"] = $Interval->d;
$Difference["Months"] = $Interval->m;

return $Difference;
}

Теперь мне нужно, чтобы $ Difference [«Weeks»] также было включено в возвращаемые данные.

РЕДАКТИРОВАТЬ: Я знаю, что я могу разделить дни с 7 и получить недели, но это не приводит к правильному. Например: 2 месяца, 14 дней, 3 часа — Когда я делю 14 дней с 7 я получу это: 2 месяца, 2 недели, 14 дней, 3 часа и сейчас это не тот же период.

-3

Решение

public function DateTimeDifference($FromDate, $ToDate) {
$FromDate = new DateTime($FromDate);
$ToDate   = new DateTime($ToDate);
$Interval = $FromDate->diff($ToDate);

$Difference["Hours"] = $Interval->h;
$Difference["Weeks"] = floor($Interval->d/7);
$Difference["Days"] = $Interval->d % 7;
$Difference["Months"] = $Interval->m;

return $Difference;
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]