Sering kali kita perlu mengubah format tanggal dari database untuk ditampilkan di view /blade. Misalnya untuk keperluan menampilkan tanggal lahir atau tanggal jadwal. Pada artikel kali ini membahas bagaimana cara menampilkan tanggal dari database ke blade dengan format Indonesia. Format Indonesia yang akan ditampilkan seperti berikut Senin , 28 Juli 2020.

Ada beberapa cara , pertama Menggunakan Accessor Laravel.

Accessor adalah suatu fungsi/method yang digunakan untuk format data setelah data itu didapat dari database sebelum ditampilkan ke user.

Caranya, silahkan menuju ke model. Dimodel misalnya kamu punya field dari database seperti ini:

    protected $table = 'pegawai';
    
    protected $fillable = [
        'nama_pegawai', 'jabatan', 'alamat', 'tanggallahir'
    ];

Fungsi Accessor Laravelnya seperti berikut :

  public function getTanggallahirAttribute($value)
    {
        $value = Carbon::parse($value);
        $parse = $value->locale('id');
        return $parse->translatedFormat('l, d F Y');
    }

Atau kamu bisa hapus saja $value->locale(‘id’); nya, dan gantikan di file provider yang terletak di app/Providers/AppServiceProvider.php. Pada function boot.

    public function boot()
    {
    
        Carbon::setLocale('id');
        
        // .......
     }

Jadi dimodel hanya seperti ini :

 public function getTanggallahirAttribute($value)
    {
        $value = Carbon::parse($value);
        return $parse->translatedFormat('l, d F Y');
    }
Atau cara kedua, di taruh di helper saja.

Sebelumnya , agar tanggallahir dapat mengembalikan instance dari carbon maka pada model perlu di tambahkan variable protected $dates:

protected $dates = ['tanggallahir'];

Isi Keseluruhan file model:

<?php

namespace App;

use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;

class Pegawai extends Model
{
    
    protected $table = 'pegawai';
    
    protected $fillable = [
        'nama_pegawai', 'jabatan', 'alamat', 'tanggallahir'
    ];

    protected $dates = ['tanggallahir'];
}

Buat folder Helpers dibawah folder App/ dan didalam folder Helpers buat file Common.php. Didalam file Common.php buat fungsi untuk tanggal indonesia. Cukup Seperti ini :

function showDateTime($carbon, $format = "d M Y @ H:i") {
    return $carbon->translatedFormat($format);
}

Pada file composer.json bagian   “autoload”:  tambahkan

"files": [
            "app/Helpers/Common.php"
       ],

Lalu ketikan perintah composer dump-autoload pada terminal.

Karena pada file AppServiceProvider.php sudah ditambahkan Carbon::setLocale(‘id’); maka fungsi diatas sudah langsung bisa digunakan.

Diblade bisa ditulis seperti ini :

{{ showDateTime($d->tanggallahir, 'l, d F Y') }}

Maka tampilan sudah berbahasa Indonesia.