Untitled

 avatar
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