Mengatur Default Hari Weekend dan Weekday di Carbon

Profile
Abd Asis

27 Agustus 2024

Mengatur Default Hari Weekend dan Weekday di Carbon

Dalam beberapa kasus, definisi akhir pekan (weekend) dan hari kerja (weekday) bisa berbeda berdasarkan kebutuhan aplikasi. Misalnya, kamu mungkin ingin mengatur hari Jumat hingga Sabtu sebagai akhir pekan dan Minggu hingga Kamis sebagai hari kerja. Di Carbon, ini bisa dilakukan dengan membuat subclass dari Carbon dan mengoverride metode isWeekend().

Langkah 1: Buat CustomCarbon Class

Pertama, kita akan membuat subclass dari Carbon untuk mengubah perilaku default isWeekend() dan isWeekday().

  1. Buka proyek Laravel kamu dan buat file baru di dalam direktori app. Beri nama file ini CustomCarbon.php. ini bebas saja ya, Kamu juga bisa membuat nama kelas yang lain misal CustomWeekend.php atau yang lain, tapi untuk kali ini Aku membuatnya dengan nama seperti yang disebutkan diatas.

  2. Tambahkan kode berikut ke dalam file CustomCarbon.php:

    <?php namespace App; use Carbon\Carbon; class CustomCarbon extends Carbon { // Override metode isWeekend public function isWeekend() { // Cek apakah hari ini adalah Jumat atau Sabtu return $this->dayOfWeek === Carbon::FRIDAY || $this->dayOfWeek === Carbon::SATURDAY; } // Override metode isWeekday public function isWeekday() { // Cek apakah hari ini adalah Minggu sampai Kamis return !$this->isWeekend(); } }

Langkah 2: Menggunakan CustomCarbon di Aplikasi

Sekarang, mari kita gunakan CustomCarbon di dalam aplikasi Laravel kamu untuk mengecek apakah hari tertentu adalah weekend atau weekday.

  1. Buka salah satu controller atau buat controller baru. Misalnya, kamu bisa menggunakan HomeController.

  2. Tambahkan kode berikut ke dalam metode di controller tersebut:

    namespace App\Http\Controllers; use App\CustomCarbon; use Illuminate\Http\Request; class HomeController extends Controller { public function index() { // Buat tanggal menggunakan CustomCarbon $date1 = CustomCarbon::parse('2024-08-30'); // Jumat $date2 = CustomCarbon::parse('2024-08-31'); // Sabtu $date3 = CustomCarbon::parse('2024-09-01'); // Minggu // Cek apakah tanggal tersebut adalah weekend $isDate1Weekend = $date1->isWeekend() ? 'Weekend' : 'Weekday'; $isDate2Weekend = $date2->isWeekend() ? 'Weekend' : 'Weekday'; $isDate3Weekend = $date3->isWeekend() ? 'Weekend' : 'Weekday'; // Tampilkan hasilnya return view('welcome', compact('isDate1Weekend', 'isDate2Weekend', 'isDate3Weekend')); } }
  3. Buka view welcome.blade.php atau view lain yang digunakan di controller tersebut, dan tambahkan kode berikut untuk menampilkan hasilnya:

    <div> <p>2024-08-30 (Jumat) adalah: {{ $isDate1Weekend }}</p> <p>2024-08-31 (Sabtu) adalah: {{ $isDate2Weekend }}</p> <p>2024-09-01 (Minggu) adalah: {{ $isDate3Weekend }}</p> </div>

Langkah 3: Uji Coba di Browser

  1. Jalankan server Laravel dengan perintah berikut di terminal:

    php artisan serve
  2. Buka browser dan arahkan ke http://localhost:8000.

  3. Lihat hasilnya, kamu akan melihat bahwa tanggal yang ditentukan sebagai Jumat dan Sabtu akan dianggap sebagai weekend, dan Minggu akan dianggap sebagai weekday.

Kesimpulan

Dengan tutorial ini, kamu telah berhasil mengatur default weekend dan weekday di Carbon sesuai kebutuhan spesifik aplikasi kamu. Dengan membuat subclass dari Carbon dan mengoverride metode isWeekend() dan isWeekday(), kamu bisa menyesuaikan definisi akhir pekan dan hari kerja dalam proyek Laravel.

What do you think?

Reactions