У вас есть две отдельные проблемы:
Во-первых: как вы различаете две даты.Вы можете перейти на высокие или низкие технологии здесь.Если вы не хотите использовать Carbon, я рекомендую перейти на низкую технологию:
<?php
// Note, this gives you a timestamp, i.e. seconds since the Epoch.
$ticketTime = strtotime($ticket->start_date);
// This difference is in seconds.
$difference = $ticketTime - time();
На этом этапе вы должны решить, как вы хотите вывести разницу.В секундах?В часах?
Difference: {{ $difference }} seconds
Difference: {{ round($difference / 3600) }} hours
Difference: {{ round($difference / 86400) }} days
Вам придётся делать дополнительную инженерию, если вы хотите что-то столь же красивое, как Carbon::diffForHumans()
.
Второе: теперь это становится вопросом для вас, слишком ли этомного кода для вашего интерфейса.Очевидно, что вы можете сократить все вышеперечисленное до однострочного в PHP, но ваши коллеги могут не оценить, насколько нечитабельным это становится:
{{ round((strtotime($ticket->start_date) - time()) / 3600) }} hours
Предостережения
Использование временных меток утешает проблему обращения с часовыми поясами.Для нескольких вариантов использования этого достаточно;для других это крайне неадекватно.Но если вы хотите работать с часовыми поясами, вам определенно лучше использовать Carbon, что лучше, чем использование DateTime в PHP, но зависит только от вас.