jahsen
jahsen

Reputation: 73

How use carbon in Laravel 5.2 application-wide

How to use Carbon in Laravel 5.2 without use Carbon\Carbon; added in every View and Controller..?

Upvotes: 6

Views: 28233

Answers (3)

kapitan
kapitan

Reputation: 2232

Here's what I have on my helpers.php

function myCarbon($date)
{
  return $date != '' ? \Carbon\Carbon::parse($date) : '-';
}

Then on any controllers and views:

myCarbon($model->field)->format('F d, Y');

And since I usually have mm/dd/yyyy and mm/dd/yyyy H:i on my blades, I have these on my helper file:

function mydateFormat($date)
{
  return $date != '' ? myCarbon($date)->format('m/d/Y') : '-';
}

function mytimeFormat($date)
{
  return $date != '' ? myCarbon($date)->format('H:i') : '-';
}

function mydateTime($date)
{
  return $date != '' ? myCarbon($date)->format('m/d/Y H:i') : '-';
}

Now you can use this application-wide on any controllers and views.

(note: function names are sample only, not what actually I am using, change based on your need)

Upvotes: 0

zsolt.k
zsolt.k

Reputation: 703

Add the following line to the aliases array in the config/app.php:

'Carbon' => 'Carbon\Carbon'

And you need to add use Carbon; every class where you want to use it.

Upvotes: 21

Hammerbot
Hammerbot

Reputation: 16364

You can declare some fields in your models using the following structure:

protected $dates = ['created_at', 'updated_at', 'disabled_at','mydate'];

All of those fields will automatically be Carbon instances and you will be able to use them in your views like:

{{ $article->mydate->diffForHumans() }}

This is the answer I provided some time ago here.

And here is the documentation from Laravel for that

Upvotes: 2

Related Questions