Spread the love

In this article we will learn to show human readable date in ago format in laravel. Its best way to show the ago date on our application since its human readable and we don’t need to care about timezones because we can keep any timezone and it will always show the time ago like 1 sec ago, 1 min ago, x days ago, x months ago and x years ago.

Laravel itself provide inbuilt method to show human readable format. Using the carbon library we can easily achieve the ago format. To implement the date ago format laravel provides created_at and updated_at as default timestamp with carbon attached.

This example will work in all version of laravel including laravel 5, laravel 6, laravel 7, laravel 8 and laravel 9. In example we will show Human Readable Date in Ago Format in Laravel with Carbon class and method diffForHumans.

Also Read : How to Get Current Date Time and Format in Laravel ?

here is the syntax if its model date

$model->created_at->diffForHumans();

Laravel defaults add created_at and updated_at to each model and if we want to add more fields as datetime then we can use as below

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $dates = ['created_at', 'updated_at', 'read_at']; 
    use HasFactory;
}

Then we can use in our controller model or anywhere as follow

$article = Article::find(1);
$article->read_at->diffForHumans();

String to Date in Ago format in Laravel

Sometimes we have different situation where we have date in string format so we need to first parse it into carbon then we can show it in human readable format as follow

suppose we have a date string in format d/m/y format so

$carbonObject = Carbon\Carbon::createFromFormat('d/m/y', "09/01/2022");
$carbonObject->diffForHumans();

Here we used createFromFormat method of carbon class which accepts three parameters first format of date, second date string and third timezone then after converting the date string in carbon object we used diffForHumans method to show date in ago format so the output will be

3 days ago

DateTime object to Carbon in Ago format in Laravel

Sometimes we have DateTime class object in laravel so to show in ago format in easy way first we need to convert it to Carbon object as follow

$dt = new \DateTime('first day of March 2022');   
$carbon = Carbon::instance($dt);
  
echo $carbon->diffForHumans();

we can also use Carbon::parse but make sure the format is correct Y-m-d

Leave a Reply