Sebenarnya sudah banyak artikel seputar manipulasi format tanggal baik di PHP maupun MySQL, tapi tak apalah siapa tahu tulisan kecil inipun bisa membantu teman-teman. Secara default, MySQL menyimpan data ‘date’ dalam format ‘yyyy-mm-dd’. Untuk merubah format tanggal tersebut bisa kita lakukan dengan merubah format di MySQL, namun cara ini tidak saya bahas, karena menurut saya lebih fleksibel kalau kita menyiasati format tampilan di sisi client.
Misal kita sudah menyiapkan tabel dengan salah satu kolom bernama ‘tgl’ dengan format kolom ‘date’, dan kita membuat recordset misal dengan nama ‘panggiltgl_rec’. Untuk merubah format tgl tersebut, kita bisa menggunakan fungsi strtotime.
- Misal kita ingin menampilkan format ‘dd-mm-yyyy’ maka cara memanggilnya adalah <?php echo date(‘d-m-Y’, strtotime($row_panggil_rec["tgl"])); ?>
- Misal kita ingin menampilkan format ‘yyyy’ maka cara memanggilnya adalah <?php echo date(‘Y’, strtotime($row_panggil_rec["tgl"])); ?>
- Kalau kita ingin menampilkan format Indonesia, misalnya Minggu, 6 Maret 2011, maka kita menambahkan fungsi LC_TIME, strftime. Penggunaannya seperti ini <?php setlocale(LC_TIME,’in’);
echo strftime(‘%A, %d %B %Y’, strtotime($row_panggiltgl_rec['tgl'])); ?>
Jika point nomor 3 masih bermasalah dalam menampilkan format tanggal indonesia (seperti yang saya alami, maka coba setting ini : setlocale(LC_ALL, 'id_ID.UTF8', 'id_ID.UTF-8', 'id_ID.8859-1', 'id_ID', 'IND.UTF8', 'IND.UTF-8', 'IND.8859-1', 'IND', 'Indonesian.UTF8', 'Indonesian.UTF-8', 'Indonesian.8859-1', 'Indonesian', 'Indonesia', 'id', 'ID', 'en_US.UTF8', 'en_US.UTF-8', 'en_US.8859-1', 'en_US', 'American', 'ENG', 'English');
Sekian dulu, semoga membantu
Indra Bustami
Maret 13, 2011 at 6:17 am
Saya coba sharing aj ttg masalah date format ke MySQL (yyyy-mm-dd) dari form input PHP (dd-mm-yyyy). Dimana muncul di MySQL “0000-00-00″
Saya bukan seorang programmer. Saya sendiri menggunakan fasilitas dreamweaver utk membuat website PHP. Dan saya menggunakan jQuery untuk datepicker. Waktu saya praktekan datepicker ini, ternyata masih ada masalah seperti di atas.
Oke, pada dreamweaver ada fungsi yang dijabarkan, yaitu:
if (!function_exists(“GetSQLValueString”)) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = “”, $theNotDefinedValue = “”)
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists(“mysql_real_escape_string”) ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case “text”:
$theValue = ($theValue != “”) ? “‘” . $theValue . “‘” : “NULL”;
break;
case “long”:
case “int”:
$theValue = ($theValue != “”) ? intval($theValue) : “NULL”;
break;
case “double”:
$theValue = ($theValue != “”) ? “‘” . doubleval($theValue) . “‘” : “NULL”;
break;
case “date”:
$theValue = ($theValue != “”) ? “‘” . $theValue . “‘” : “NULL”;
break;
case “defined”:
$theValue = ($theValue != “”) ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
cobalah menyisipkan sebaris script berikut dalam:
case “date”:
$theValue = ($theValue != “”) ? “‘” . $theValue . “‘” : “NULL”;
break;
sehingga menjadi:
case “date”:
$theValue = date(‘Y-m-d’, strtotime($theValue));
$theValue = ($theValue != “”) ? “‘” . $theValue . “‘” : “NULL”;
break;
ndholkondho
Maret 15, 2011 at 7:18 am
Siipp…makasih infonya mas Indra…masukan yang sangat berguna
teguh
September 5, 2011 at 8:25 am
#Indra Bustami : Mas, kalau tanggalnya di otomatisin jadi hari ini itu gimana ? Cosz tanggalnya masih tahun lama… thanks
ndholkondho
September 30, 2011 at 2:37 am
Kalau otomatis jadi hari ini maka formatnya lebih sederhana yaitu
. Perintah ini akan menampilkan tanggal-bulan-tahun saat ini. Semoga membantu