Outils pour utilisateurs

Outils du site


devweb:laravel:carbon (lu 16041 fois)

Ceci est une ancienne révision du document !


Carbon

Docs ⇒ http://carbon.nesbot.com/docs/

Certain champ par défaut comme created_at, updated_at et deleted_at retourne une instance Carbon avec Eloquent

Si vous avez d’autres champs date dans votre table, il faut les rajouter dans son model

    protected $dates = [
        'created_at',
        'updated_at',
        'deadline',
        'closed_at'
    ];

Ainsi dans une vue, vous pouvez facilement formater votre date

$issue->deadline->format('d/m/Y')
 
$comment->created_at->diffForHumans()

Le diffForHumans() est intéressant :) mais il faudra le mettre en français par défaut.

Pour cela, j’ai modifié le fichier app\Providers\AppServiceProvider.php en considérant que votre app.locale=‘fr’ et votre app.timezone=‘Europe/Paris’

<?php
 
namespace App\Providers;
 
use Illuminate\Support\ServiceProvider;
use Carbon\Carbon;
 
class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Carbon::setLocale(config('app.locale'));
    }
 
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Exemple

Transformer des secondes en heure minute seconde

>>> \Carbon\Carbon::parse('0sec')->diff(\Carbon\Carbon::parse('490sec'))->format('%H:%I:%S')
=> "00:08:10"

Récupérer une date au format français dd/mm/yyyy pour l’intégrer dans un model

>>> \Carbon\Carbon::createFromFormat('d/m/Y','11/06/1990')
=> Carbon\Carbon {#688
     +"date": "1990-06-11 16:52:04.000000",
     +"timezone_type": 3,
     +"timezone": "Europe/Paris",
   }

Plein d’autre exemple dans la docs ⇒ http://carbon.nesbot.com/docs/

devweb/laravel/carbon.1487606019.txt.gz · Dernière modification: 20-02-2017 16:53 de edmc73