Laravel - проблема карбона на лезвии - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот автомобильный проект, и мне нужно показать дату с информацией об автомобиле на моем столе. Итак, это мой код:

<?php $today = Carbon\Carbon::now(); ?>
@if($car->po_datum_isteka == $today)
<td>{{$car->naslov}}</td>
<td class="text-info"><a href="">{{$car->user->name}}</a></td>
<td>{{$car->created_at->format('d-m-Y H:i:s')}}</td>
@endif

Итак, с этим кодом он ничего не показывает, но с этим:

<?php $today = Carbon\Carbon::now(); ?>
@if($car->po_datum_isteka <= $today)
<td>{{$car->naslov}}</td>
<td class="text-info"><a href="">{{$car->user->name}}</a></td>
<td>{{$car->created_at->format('d-m-Y H:i:s')}}</td>
@endif

он показывает. Разница между == и <=. Зачем? Что делаю не так?

1 Ответ

1 голос
/ 05 мая 2020

Ваша проблема в том, что now() возвращает текущую дату и время. Это означает, что вам нужно, чтобы $car->po_datum_isteka совпадало с датой и временем суток.

Вместо этого вы можете просто использовать метод isToday().

@if ($car->po_datum_isteka->isToday())
    <td>{{ $car->naslov }}</td>
    <td class="text-info"><a href="">{{ $car->user->name }}</a></td>
    <td>{{ $car->created_at->format('d-m-Y H:i:s') }}</td>
@endif

Это предполагает, что $car->naslov является экземпляром Carbon, что вы можете гарантировать, добавив его в свою модель ( Я предполагаю, что у вас есть модель под названием Cars здесь).

Если $car->po_datum_isteka не является экземпляром Carbon, вы всегда можете просто проанализировать его.

@if (\Carbon\Carbon::parse($car->po_datum_isteka)->isToday())
    <td>{{ $car->naslov }}</td>
    <td class="text-info"><a href="">{{ $car->user->name }}</a></td>
    <td>{{ $car->created_at->format('d-m-Y H:i:s') }}</td>
@endif
...