Untitled
unknown
plain_text
2 months ago
2.3 kB
2
Indexable
<?php // Fungsi untuk mengubah bulan ke bahasa Indonesia function getBulanIndo($bulan) { $bulanArray = [ 1 => 'Januari', 2 => 'Februari', 3 => 'Maret', 4 => 'April', 5 => 'Mei', 6 => 'Juni', 7 => 'Juli', 8 => 'Agustus', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Desember' ]; return $bulanArray[$bulan]; } // Fungsi untuk format tanggal MySQL ke format bahasa Indonesia function formatTanggalIndonesia($tgl1, $tgl2) { // Convert string tanggal MySQL ke DateTime object $date1 = new DateTime($tgl1); $date2 = new DateTime($tgl2); // Ambil informasi tahun, bulan, dan tanggal $tahun1 = $date1->format("Y"); $bulan1 = $date1->format("n"); // Bulan dalam format numerik $hari1 = $date1->format("j"); $tahun2 = $date2->format("Y"); $bulan2 = $date2->format("n"); $hari2 = $date2->format("j"); // Konversi bulan ke bahasa Indonesia $bulanIndo1 = getBulanIndo($bulan1); $bulanIndo2 = getBulanIndo($bulan2); // Jika tanggal pertama dan kedua sama if ($date1 == $date2) { return "$hari1 $bulanIndo1 $tahun1"; } // Jika bulan dan tahun sama, hanya tulis di tgl2 if ($bulan1 == $bulan2 && $tahun1 == $tahun2) { // Jika selisih 1 hari, gunakan kata "dan" $diff = $date1->diff($date2); if ($diff->days == 1) { return "$hari1 dan $hari2 $bulanIndo2 $tahun1"; } // Jika lebih dari 1 hari, gunakan "s.d." return "$hari1 s.d $hari2 $bulanIndo2 $tahun1"; } // Jika tanggal pertama dan kedua berada di bulan atau tahun yang berbeda, gunakan "s.d." return "$hari1 $bulanIndo1 $tahun1 s.d $hari2 $bulanIndo2 $tahun2"; } // Contoh Penggunaan: echo formatTanggalIndonesia("2024-01-01", "2024-01-02") . "\n"; // Output: 1 dan 2 Januari 2024 echo formatTanggalIndonesia("2024-01-31", "2024-02-01") . "\n"; // Output: 31 Januari dan 1 Februari 2024 echo formatTanggalIndonesia("2024-01-31", "2024-02-02") . "\n"; // Output: 31 Januari s.d 2 Februari 2024 echo formatTanggalIndonesia("2024-12-31", "2025-01-01") . "\n"; // Output: 31 Desember 2024 dan 1 Januari 2025 echo formatTanggalIndonesia("2024-01-01", "2024-01-31") . "\n"; // Output: 1 s.d 31 Januari 2024 ?>
Editor is loading...
Leave a Comment