@Lomoson суть проблемы в том. что при расчете интервала учитывается и часовой пояс. То есть время смещается в вашем случае на 2 часа и там уже не из первого февраля вычитается первое марта, а из 31-ого 22,00 декабря вычитается 28-ое января 22,00. Итого разница не в один месяц а в 28 дней.
@Lomoson нет, 1 месяц и 0 дней. Все правильно. Если вам нужно сконвертировать DateInterval в интервал в любых еденицах измерения, вам нужно оперировать в timestamp. dateinterval нужен больше как объектное представление разницы между датами и обозначение периодов.
@Lomoson работа с датами и временем это одно из самых стремных что есть в языках программирования. Именно поэтому появляются библиотеки типа moment.php которые многое берут на себя.