Естественно, когда вы получаете часы, это только часы текущего дня. В противном случае эта информация была бы бесполезна в большинстве случаев. Подумайте, хотите ли вы отформатировать вывод как
Интервал составляет x месяцев, y дней и z часов.
Если переменная h в объекте DateInterval работает так, как вы предполагали, вы можете получить такой вывод, как
Интервал составляет 1 месяц, 35 дней и 2108 часов.
Итак, если вы хотите представить только в виде часов, вы должны суммировать часы дней и добавить их к часам текущего дня, согласно документации на класс DateInterval .
$difference->h + $difference->d * 24;