PHP – разница в месяцах DateTime, не учитывающая разницу в году

Я пытался понять это в течение нескольких часов, но безрезультатно: как получить разницу в полных месяцах между двумя датами, но учет в течение года? Код ниже

$assignedDate = new DateTime('2011-02-03'); $firstDate = new DateTime('2013-03-03'); $interval = $assignedDate->diff($firstDate); $months = (int)$interval->format('%m'); 

Является убежденным в том, что разница между ними равна 1, однако это не применимо для моего приложения, и 49 будет ожидаемым результатом, я исследовал и нашел этот код из этого замечательного места, но получаю «Неправильный оператор конкатенации строк », поэтому я предположил, что проблема связана с их строгим выходом и put (int) перед ними, но получил 0:

 echo (($diff->format('%y') * 12) + $diff->format('%m')) . " full months difference"; 

Есть ли надежное решение найти разницу в месяце между двумя датами, учитывающими год?

Нет необходимости форматировать числа с помощью метода format() . Вы можете просто получить доступ к общедоступным свойствам объекта DateInterval :

 $months = $interval->m + $interval->y * 12; 

демонстрация