Вероятно, самый простой способ - создать новый объект и клонировать его, добавив два (или более) DateTimeIntervals (в вашем случае $diff_1
и $diff_2
) к новому объекту.Теперь найти разницу между новым объектом и его клоном, это сумма двух DateTimeIntervals, которые у вас были изначально.
// Define two intervals
$date1 = date_create("2013-03-15");
$date2 = date_create("2013-12-12");
$diff_1 = date_diff($date1,$date2);
$date3 = date_create("2015-02-15");
$date4 = date_create("2015-12-12");
$diff_2 = date_diff($date3,$date4);
// Create a datetime object and clone it
$dt = new DateTime();
$dt_diff = clone $result;
// Add the two intervals from before to the first one
$dt->add($diff_2);
$dt->add($diff_1);
// The result of the two intervals is now the difference between the datetimeobject and its clone
$result = $dt->diff($dt_diff);
var_dump($result);
Результат дампа включает в себя
["y"]=>
int(1)
["m"]=>
int(6)
["d"]=>
int(21)
.. который1 год, 6 месяцев и 21 день.
Демонстрация в реальном времени
Sidenote
Вам не нужно объединять столько разных форматов с вашим format()
.Вы можете сделать все это в одну строку,
echo $result->format("%y years %m months %d days");