Laravel 5.6 time ago in views
First, try an eloquent model.
$users = App\User::orderBy('created_at','desc')->limit(5)->get();
in view
@foreach($users as $user) {{$user->created_at->diffForHumans()}} @endforeach
In Terms for your case
$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
@foreach($users as $user) {{ Carbon\Carbon::parse($user->created_at)->diffForHumans()}} @endforeach
Explanation
The eloquent model automatically get casts to Carbon instance and you can use an all methods
In the case of DB query date (created_at) is not get parse so we have to parse manually.
maybe it would help you
A nice semi-hidden feature of timestamps in Eloquent is that they don't just return strings from the database - they actually return an instance of Carbon, a great extension of PHP's DateTime library. What this means is that a heap of functions (and I mean a heap) are available right on your model's timestamps. It's worth having a read through the GitHub README to see what is available, but one of the coolest methods is diffForHumans(), a handy little function providing the long sought-after "time ago" format we often need.
$user = User::first();echo $user->created_at->diffForHumans(); // 2 days ago$user->touch();echo $user->created_at->diffForHumans(); // a second ago
Or
If created_date is an instance of Carbon\Carbon, you can do:
$row->created_date->diffForHumans()
If it isn't an instance of Carbon, you can do:
(new Carbon\Carbon($row->created_date))->diffForHumans()
Or you add the model property to the $dates
casting list in the model, which will cast the property to a Carbon
instance whenever you access it (like $user->created_date
):
class User{ protected $dates = [ 'created_date', ];}
The fields created_at
and updated_at
are added to this casting list automatically if $timestamps
of a model is set to true
. Also deleted_at
will be added if soft deletes are enabled.
just write ->diffForHumans();
after your time.like $record->created_date->diffForHumans();