Untitled
unknown
plain_text
a year ago
2.3 kB
5
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