1. ubah atau tambah settingan di fil env
APP_TIMEZONE=Asia/Jakarta
2. Hubungkan .env dengan config/app.php
Ini adalah langkah krusial yang sering terlewat. Jika Anda hanya menambahkannya di .env, Laravel versi lama (atau yang konfigurasinya belum diubah) tidak akan membacanya secara otomatis.
Buka file config/app.php, cari bagian timezone, dan ubah nilainya agar mengambil data dari .env menggunakan fungsi env():
// Ubah baris ini:
// 'timezone' => 'UTC',
// Menjadi seperti ini:
'timezone' => env('APP_TIMEZONE', 'UTC'),
3. Sinkronkan Timezone Database (Opsional tapi Disarankan)
Terkadang, meskipun waktu di aplikasi PHP (Laravel) sudah benar, database MySQL/PostgreSQL Anda tetap menyimpannya dalam format UTC karena pengaturan bawaan server database.
Untuk memastikan koneksi database juga menggunakan zona waktu yang sama, Anda bisa menambahkan ini di .env:
DB_TIMEZONE="+07:00"
(Gunakan +08:00 untuk WITA atau +09:00 untuk WIT).
Kemudian pastikan di config/database.php pada bagian koneksi mysql, pengaturannya membaca nilai tersebut:
'timezone' => env('DB_TIMEZONE', '+00:00'),
4. Bersihkan Cache Konfigurasi
Karena Anda baru saja mengubah file
.env dan config/app.php, Laravel masih akan menyimpan pengaturan lama di dalam cache. Anda wajib membersihkannya dengan menjalankan perintah ini di terminal: php artisan config:clear
Atau untuk membersihkan semuanya secara menyeluruh:
php artisan optimize:clear