Format Tanggal atau dalam bahasa pemrograman php adalah Format Date, dalam hal ini data yang akan digunakan adalah data dari database dengan format timesstamp, yang biasanya dalam Laravel ada colom created_at dan colom updatd_at.
Pada kasus ini yang dibahas adalah bagaimana cara mengambil nilai tertentu dari data timestamp, tetapi dalam kasus yang saya alami sedikit berbeda sehingga saya menggunakan 2(dua) cara untuk membuat format tanggal, mari kita sama-sama belajar membuat format tersebut, silahkan perhatikan perhatikan contoh sintak dibawah ini :
Eloquent
contoh query pada table post yang tentunya sudah berisi data dan kita akan mengambil data dari field
create_at
:$post = Posts::where(['slug'=>$slug,'post_status'=>1])->first();
Dan untuk mengurai format tanggal dan waktu kita dapat menggunakan
{{ $post->created_at->format('d M Y') }}
untuk format tanggal, sedangkan {{ $post->created_at->format('h:i a') }}
untuk mengurai format jam dari data timestamp, tetapi jika menggunakan sintak database query sepeti di bawah ini hasilnya akan muncul galat error, contoh :Database Query
$tagid=DB::table('tag_relations')->where('tag_relations.post_id', $post->id)->pluck('tag_id');
$relatedposts=DB::table('posts')->join('tag_relations','posts.id','=','tag_relations.post_id')->select('posts.*')->whereIn('tag_relations.tag_id', $tagid)->distinct()->orderBy('post_title','asc')->get();
apabila menggunakan
{{ $post->created_at->format('d M Y') }}
dan {{ $post->created_at->format('h:i a') }}
terjadi error dengan informasi sebagai berikut "Call to a member function format() on a non-object".Dengan adanya galat error seperti di atas, lalu saya mengabil inisiatif untuk mengakali error ini dengan cara mengadopsi sintak PHP
date()
dan strtotime()
, dan dapat diimplementasikan pada laravel sebagai berikut:{{date('d M Y', strtotime($rpost->created_at))}}
{{date('h:i a', strtotime($rpost->created_at))}}
maka hasil outputnya adalah 21 Jun 2016 dan 11:30 am.
Dari ulasan dan hasil analisa kecil atas penyebab terjadinya error, dikarenakan output yang dikeluarkan oleh database query sudah berupa string oleh karena itu perlu merubah dari string ke dalam bentuk tanggal menggunakan
date()
dan strtotime()
.Demikian arikel singkat atas pengalaman dalam menentukan format tanggal dan jam, semoga bermanfaat.
0 Response to "Atasi Error "Call to a member function format() on a non-object" Pada Laravel 5"
Posting Komentar