Tanggal yang tersimpan di database biasanya berformat yyyy-mm-dd (misalnya 2026-07-04), format yang efisien untuk mesin tetapi kurang ramah dibaca manusia Indonesia. Artikel ini membahas cara mengubah format tanggal di PHP, khususnya dari yyyy-mm-dd menjadi dd-mm-yyyy.
Kombinasi strtotime() dan date()
<?php
$tanggal = "2026-07-04";
echo date("d-m-Y", strtotime($tanggal)); // "04-07-2026"
?>
strtotime() mengubah teks tanggal menjadi timestamp, lalu date() memformatnya ulang.
Contoh Kasus: Tampilan Tanggal Berbahasa Indonesia
<?php
$bulan = [1=>"Januari","Februari","Maret","April","Mei","Juni",
"Juli","Agustus","September","Oktober","November","Desember"];
$ts = strtotime("2026-07-04");
echo date("d", $ts) . " " . $bulan[(int)date("m", $ts)] . " " . date("Y", $ts);
// "04 Juli 2026"
?>
Contoh Kasus: Menggunakan DateTime (Modern)
<?php
$d = new DateTime("2026-07-04");
echo $d->format("d/m/Y"); // "04/07/2026"
?>
Kesalahan Umum
- Memakai
str_replace()untuk menukar posisi tanggal — rapuh dan mudah salah. Gunakanstrtotime()atauDateTime. - Format ambigu seperti “04/07/2026” bisa disalahartikan sebagai bulan/tanggal. Gunakan
DateTime::createFromFormat()untuk memastikan.
Kesimpulan
Gunakan date("d-m-Y", strtotime($tanggal)) atau kelas DateTime untuk mengubah format tanggal dengan aman. Untuk tampilan berbahasa Indonesia, siapkan array nama bulan.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

