Press "Enter" to skip to content

5 Cara Filter Tanggal di Laravel

fadli 2

Halooo.. Assalaamualaikum kawan2..

Dalam membuat suatu project, pasti kita juga akan membuat report untuk analisa data nya..

Baik itu report dari hasil transaksi atau yang lainnya.

Nah dalam pembuatan report, pasti nya juga harus terdapat periode tanggal nya..

Karena dalam analisa data biasanya dilakukan berdasarkan periode tertentu..

Beberapa Contoh Kasus Filter Tanggal di Laravel

Bagi kalian yang membangun website menggunakan Framework Laravel, maka hal tersebut sangatlah mudah, mari kita mulai dengan beberapa kondisi..

Filter data berdasarkan 1 tanggal..

Untuk filter tanggal, kamu bisa gunakan perintah whereDate(), contoh nya adalah seperti berikut:

$tanggal = date('Y-m-d',strtotime($request->tanggal));
$data = Laporan::whereDate('created_at',$tanggal)->get();

Baca juga : Cara Membuat Helper Sendiri di Laravel

Perintah whereDate akan mengabaikan waktu, jadi semua data pada hari tersebut dan di jam berapapun akan ditampilkan..

Filter data diantara 2 tanggal

Untuk filter data diantara 2 tanggal masih menggunakan perintah yang sama, cuma sedikit di modifikasi seperti berikut:

$tanggal_awal = date('Y-m-d',strtotime('2021-08-02'));
$tanggal_akhir = date('Y-m-d',strtotime('2021-08-15'));

$data = Laporan::whereDate('created_at','>=',$tanggal_awal)->whereDate('created_at','<=',$tanggal_akhir)->get();

Jadi diatas kita filter data dari tanggal 2 agustus 2021 sampai 15 agustus 2021..

Tapi kalau misalkan didalam query kita ada banyak kondisi, lebih baik untuk filter periode tanggal nya dikelompokkan menjadi 1 where dan di eksekusi pada function closure nya..

Contoh, misal kita ingin filter data laporan yang location_id nya 2, user_id = 1, category_id = 3, product_id = 4, dan dalam periode tanggal tertentu, maka contoh koding nya adalah seperti berikut:

<?php

$tanggal_awal = date('Y-m-d', strtotime('2021-08-02'));
$tanggal_akhir = date('Y-m-d', strtotime('2021-08-15'));

$data = Laporan::where('location_id',2)
                ->where('user_id',1)
                ->where('category_id', 3)
                ->where('product_id',4)
                ->where(function($query)use($tanggal_awal,$tanggal_akhir){
                    $query->whereDate('created_at', '>=', $tanggal_awal)->whereDate('created_at', '<=', $tanggal_akhir);
                })
                ->get();

Coba kalian perhatikan script diatas, pada baris ke-10 kita melakukan grouping where untuk memfilter periode tanggal nya..

Atau kalau kalian ingin lebih simple lagi saat membuat query filter tanggal nya, kalian bisa gunakan perintah whereBetween, contoh:

5 Cara Filter Tanggal di Laravel

Terlihat lebih simple kan?

Filter Data berdasarkan Bulan tertentu

Untuk filter data berdasarkan bulan tertentu, kamu bisa gunakan perintah whereMonth()..

Misal kamu ingin tarik semua data yang ada dibulan agustus, maka perintah nya adalah seperti berikut:

$bulan = date('m',strtotime('2021-08-07 15:30:42'));
// varibel bulan akan menghasilkan '08'

$data = Laporan::whereMonth('created_at',$bulan)->get();

Filter data berdasarkan tahun tertentu

Kalo sebelumnya berdasarkan bulan, maka sekarang berdasarkan tahun..

Kamu bisa gunakan perintah whereYear()..

Misal kamu ingin narik semua data yang ada di tahun 2021, maka perintah nya adalah seperti berikut:

$tahun = date('Y',strtotime('2021-08-02'));
// variabel tahun akan menghasilkan '2021'

$data = Laporan::whereYear('created_at',$tahun)->get();

Filter Data diantara 2 Bulan dan Tahun

Misal, kamu ingin Filter data dari bulan Agustus 2020 sampai bulan Januari 2021..

Maka anggapan nya adalah seperti kamu ingin filter data di tanggal 1 agustus 2020 sampai 31 Januari 2021..

Nah agar bisa melakukan nya, kita harus mencari tahu terlebih dahulu nih tanggal akhir pada bulan januari 2021..

Untuk mengetahui tanggal akhir, kamu bisa gunakan perintah date(‘Y-m-t’)..

Langsung kita coba aja ke sample coding nya..

$tanggal_awal = date('Y-m-01',strtotime('2020-08-15'));
// akan me return 2020-08-01
$tanggal_akhir = date('Y-m-t',strtotime('2021-01-13'));
// akan me return 2021-01-31

$data = Laporan::whereDate('created_at','>=',$tanggal_awal)->whereDate('created_at','<=',$tanggal_akhir)->get();

Nah itu dia cara filter tanggal di Laravel, jika ada update terbaru akan di informasikan disini..

Support Us

Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid

Terima kasih..

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: