зачем через getTimestamp() вычисляете diff, когда есть методы diff() у даты?!
и почему из диффа (разницы) вы создаете время
допустим разница будет 10 секунд, если для 10 секнуд вы время будете создавать, тогда выдавать вам будет как 10 секунд от начала отсчета (полуночи 1 января 1970 года)
Решения:
Считать разницу через difference
$date1 = Carbon::createMidnightDate(2016, 1, 5); // <-- тут любой способ создания объекта
$date2 = Carbon::createMidnightDate(2017, 3, 15);
echo $date1->diffInDays($date2); // 435
echo $date1->diffInWeekdays($date2); // 311
echo $date1->diffInWeekendDays($date2); // 124
echo $date1->diffInWeeks($date2); // 62
echo $date1->diffInMonths($date2); // 14
echo $date1->diffInQuarters($date2); // 4
echo $date1->diffInYears($date2); // 1
https://carbon.nesbot.com/docs/#api-difference