2014-10-10 2 views
1

У меня есть это поле $data->created_at и хотел бы только показать данные, если это > 30 minutes старыйСравнение дат в Laravel

на мой взгляд, у меня есть:

@if ($data->created_at > strtotime('30 minutes')) 
    show data 
@endif 

Это не работает. Я также создал это утверждение в контроллере, но он не работает. Carbon каким-то образом повлиял на это.

Каков наилучший способ сделать это в Ларавеле?

ответ

2

Поля, отмеченные значком Laravel и updated_at, являются \ DateTime Objects. Вы должны быть в состоянии сделать это, используя

@if($data->created_at > \new DateTime('-30 minutes')) 
    show data 
@endif 
+0

Технически они являются объектами углерода. – Dwight

+0

Технически Углеродные объекты - это объекты DateTime. –

+0

Также верно, но стоит знать, что они являются Carbon, поскольку он предоставляет множество дополнительных функций поверх DateTime. – Dwight

3

Более «Laravel путь» сделать это было бы,

@if($data->created_at > (new \Carbon\Carbon())->subMins(30)) 
    show data 
@endif