Dahulu sebelum belajar Database Management system, khusus untuk format tanggal saya menggunakan type data Varchar untuk menggantikan Type data Date / Datetime, Mengapa? alasannya klasik, biar telihat format bahasa indonesia khusus untuk penanggalan. Setelah berguru pada senior – senior dan sedikit mendalami tentang database khususnya mysql format seperti itu salah mengapa? karena bukan standart dari type data penanggalan, kalian akan sedikit mendapat masalah saat akan melakukan perhitungan tanggal dari sisi database
Misalkan kalian ingin menambahkan 1 hari dari tanggal saat ini, bila format date kalian dapat melakukan dengan perintah
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
bagaimana bila mengambil dari suatu field tapi dengan type data varchar?
SELECT DATE_ADD(STR_TO_DATE(`TANGGAL`,’%Y-%m-%d’), INTERVAL 1 DAY) AS TANGGAL
sedikit agak panjang tapi ini akan mengurangi proses convert pada system bayangkan bisa ada jutaan record yang harus diconvert! ini kan membebankan system (server)
Bagaimana solusinnya? kembalikan formatan tanggal menjadi date / datetime bila ingin mengkonvert ke format indonesia lakukan perintah seperti berikut
SELECT DATE_FORMAT(‘2012-11-20 03:04:12′,’%d-%m-%Y %H:%i:%s’) AS TANGGAL
Hasil akan menjadi format indonesia Misal 20-11-2012 03-04:12
bagaimana bila ingin bulannya diubah menjadi Nama – nama bulan bukan angka?
kita buat satu fungsi untuk mengkonversinya
function date_convert ($date) {
$date = date(‘Y-m-d’, strtotime($date)); // ubah sesuai format penanggalan standart
$bulan = array (’01’=>’Januari’, // array bulan konversi
’02’=>’Februari’,
’03’=>’Maret’,
’04’=>’April’,
’05’=>’Mei’,
’06’=>’Juni’,
’07’=>’Juli’,
’08’=>’Agustus’,
’09’=>’September’,
’10’=>’Oktober’,
’11’=>’November’,
’12’=>’Desember’
);
$date = explode (‘-‘,$date); // ubah string menjadi array dengan paramere ‘-‘return $date[2] . ‘ ‘ . $bulan[$date[1]] . ‘ ‘ . $date[0]; // hasil yang di kembalikan
}
fungsi diatas akan menkonversi format bulan yang tadinya angka menjadi format nama – bulan dalam bahasa indonesia, format diatas dapat digunakan meski format tidak tidak tanggal (String).
Contoh penggunaannya
<?php echo date_convert(’20-11-2012 05:05:39′);?> // bila string biasa (coba2)
<?php echo date_convert($data[‘TANGGAL’]);?> // bila string diambil dari database
OK Segitu dulu semoga bermanfaat