Membuat Format Tanggal Bahasa Indonesia dengan Fungsi PHP

Fungsi date yang disediakan oleh Php nampaknya tidak bisa menyediakan fitur untuk “melokalkan”-nya ke format tanggal Indonesia yang biasanya di tampilkan seperti Senin, 11 Januari 2002.

Jadi untuk memudahkan anda para programmer PHP untuk menampilkan tanggal dalam format Indonesia seperti diatas, saya mencoba membaginya kepada anda. Kodenya cukup sederhana, hanya beberapa baris saja, berikut kodenya:

function indonesian_date ($timestamp = '', $date_format = 'l, j F Y | H:i', $suffix = 'WIB') {
    if (trim ($timestamp) == '')
    {
        $timestamp = time ();
    }
    elseif (!ctype_digit ($timestamp))
    {
        $timestamp = strtotime ($timestamp);
    }

    # remove S (st,nd,rd,th) there are no such things in indonesia :p
    $date_format = preg_replace ("/S/", "", $date_format);
    $pattern = array (
        '/Mon[^day]/','/Tue[^sday]/','/Wed[^nesday]/','/Thu[^rsday]/',
        '/Fri[^day]/','/Sat[^urday]/','/Sun[^day]/','/Monday/','/Tuesday/',
        '/Wednesday/','/Thursday/','/Friday/','/Saturday/','/Sunday/',
        '/Jan[^uary]/','/Feb[^ruary]/','/Mar[^ch]/','/Apr[^il]/','/May/',
        '/Jun[^e]/','/Jul[^y]/','/Aug[^ust]/','/Sep[^tember]/','/Oct[^ober]/',
        '/Nov[^ember]/','/Dec[^ember]/','/January/','/February/','/March/',
        '/April/','/June/','/July/','/August/','/September/','/October/',
        '/November/','/December/',
    );

    $replace = array ( 'Sen','Sel','Rab','Kam','Jum','Sab','Min',
        'Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu',
        'Jan','Feb','Mar','Apr','Mei','Jun','Jul','Ags','Sep',
        'Okt','Nov','Des','Januari','Februari','Maret','April',
        'Juni','Juli','Agustus','September','Oktober','November','Desember',
    );
 
    $date = date ($date_format, $timestamp);
    $date = preg_replace ($pattern, $replace, $date);
    $date = "{$date} {$suffix}";
    return $date;
}

Cara pakai-nya:

Cukup panggil fungsi diatas seperti ini:

// semua parameter kosong maka waku yang di hasilkan adalah waktu saat ini
echo indonesian_date ();

Format tanggal default adalah : Senin, 19 Desember 2009 | 13:00 WIB. Namun anda tetap dapat menggantinya sesuai keinginan, dengan menggunakan format date seperti layaknya di PHP. Perhatikan contoh berikut:

Seperti halnya fungsi date() pada PHP, kita bisa menuliskannya sesuai format date di PHP, sebagai contoh

// ambil waktu saat ini
$timestamp = time ();
echo indonesian_date ($timestamp, 'j M Y | H:i', 'WIT');

Baris kode diatas akan menghasilkan format tanggal : 3 Des 2009 | 12:23 WIT. Perhatikan ada akhiran WIT pada tanggal yang ditampilkan, anda juga dapat menggantinya sesuai keinginan.

Anda dapat mencoba format-format lain sesuai dengan formatting date dari php (http://php.net/manual/en/function.date.php).

Anda juga dapat memasukkan format default DATETIME dari tabel MySQL (YYYY-MM-DD HH:MM:SS) ke dalam fungsi ini. Contoh:

$date = "2009-12-30 23:59:45"
echo indonesian_date ($date);

Output tanggal akan tetap menghasilkan tanggal berformat Indonesia.

Sekian tutorial Membuat Format Tanggal Bahasa Indonesia dengan Fungsi PHP, jika ada kekurangan mohon kritik dan sarannya di kolom komentar.
Semoga bermanfaat

Indra Fadhilah
Founder & author di webgrafis.com. Menyukai pemrograman & desain grafis. Selalu ingin belajar hal baru tentang teknologi.