Mengelola Tanggal dan Waktu menggunakan Carbon di Laravel

Carbon adalah library yang sudah terintegrasi secara bawaan di Laravel untuk memanipulasi dan mengelola tanggal dan waktu. Dengan Carbon, kita bisa melakukan berbagai operasi tanggal seperti menambah/mengurangi waktu, memformat tanggal, dan menghitung selisih antar tanggal.
Dalam panduan ini, kita akan membahas langkah-langkah dari awal hingga akhir tentang cara menggunakan Carbon di Laravel, mulai dari pengaturan di controller hingga menampilkannya di view.
Jika teman-teman belum memiliki project Laravel 11, langkah pertama adalah membuat project Laravel baru. Gunakan perintah berikut untuk membuat project baru:
composer create-project --prefer-dist laravel/laravel:^11.0 laravel-carbon-demo
Setelah project terbuat, masuk ke direktori project:
cd laravel-carbon-demo
Laravel 11 sudah menyertakan Carbon, jadi teman-teman bisa langsung menggunakannya tanpa instalasi tambahan.
Sekarang, kita akan membuat controller untuk mengimplementasikan penggunaan Carbon. Teman-teman bisa membuat controller menggunakan perintah artisan:
php artisan make:controller CarbonController
Controller ini akan kita gunakan untuk mengolah data tanggal dan waktu menggunakan Carbon.
Setelah membuat controller, buka file CarbonController.php
di folder app/Http/Controllers/
.
Pada bagian atas file, impor class Carbon:
use Carbon\Carbon;
Berikut kode lengkap contoh penggunaan Carbon di dalam controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Carbon\Carbon;
class CarbonController extends Controller
{
public function index()
{
// Mengambil waktu sekarang
$waktuSekarang = Carbon::now();
// Menambah 7 hari dari waktu sekarang
$waktuMendatang = Carbon::now()->addDays(7);
// Format tanggal menjadi hari, bulan, dan tahun
$tanggalTersimpan = $waktuSekarang->format('d M Y');
// Menghitung selisih waktu
$selisihWaktu = Carbon::now()->subDays(5)->diffForHumans();
// Passing data ke view
return view('carbon', compact('waktuSekarang', 'waktuMendatang', 'tanggalTersimpan', 'selisihWaktu'));
}
}
Carbon::now()
digunakan untuk mendapatkan waktu saat ini. Ketika teman-teman menggunakan metode ini, Carbon akan menghasilkan waktu sekarang berdasarkan zona waktu yang telah diatur di konfigurasi Laravel.
$waktuSekarang = Carbon::now();
addDays(7)
digunakan untuk menambah jumlah hari dari waktu saat ini. Dalam contoh diatas, addDays(7)
menambahkan 7 hari dari waktu sekarang, sehingga menghasilkan tanggal 7 hari di masa depan:
$waktuMendatang = Carbon::now()->addDays(7);
format('d M Y')
digunakan untuk mengubah format tanggal sesuai kebutuhan. Sebagai contoh, format('d M Y')
akan mengubah tanggal menjadi format "17 Sept 2024", dengan angka hari, nama bulan dalam singkatan, dan tahun:
$tanggalTersimpan = Carbon::now()->format('d M Y');
diffForHumans()
digunakan untuk menampilkan selisih waktu.
$selisihWaktu = Carbon::now()->subDays(5)->diffForHumans();
Sekarang kita akan menampilkan data yang sudah diproses oleh Carbon di view. Untuk itu, buat file view carbon.blade.php di dalam folder resources/views/
dan masukan kode berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Penggunaan Carbon di Laravel</title>
</head>
<body>
<h1>Pengelolaan Tanggal dan Waktu dengan Carbon di Laravel</h1>
<p>Waktu saat ini: {{ $waktuSekarang }}</p>
<p>7 hari dari sekarang: {{ $waktuMendatang }}</p>
<p>Format tanggal yang disesuaikan: {{ $tanggalTersimpan }}</p>
<p>Selisih waktu: {{ $selisihWaktu }}</p>
</body>
</html>
Langkah selanjutnya adalah membuat routing. Buka file routes/web.php
dan tambahkan routing berikut:
use App\Http\Controllers\CarbonController;
Route::get('/carbon', [CarbonController::class, 'index']);
Terakhir, jalankan server Laravel dengan perintah berikut:
php artisan serve
Teman-teman bisa mengakses halaman Carbon melalui URL http://localhost:8000/carbon
.