Merubah Format Tanggal Date ke Format Tanggal Indonesia. Kali ini tutorialweb akan menuliskan sebuah tutorial bagaimana merubah format tanggal Date (2023-05-02) menjadi format tanggal Indonesia (02 Mei 2013).
Nanti yang aka kita lakukan adalah memuat sebuah Database di phpMyAdmin membuat sebuah tabel dengan nama artikel, nah dalam tabel artikel ini ada satu field dengan artikel_tanggal yang ber-type Date, type date secara default akan menghasilkan output seperti ini YYYY-MM-DD atau 2023-05-02. Kemudian kita akan membuat sebuah function dimana akan merubah format dari 2023-05-02 menjadi 02 Mei 2013.
Oke langsung saja kita mulai.
Pertama buat dahulu sebuah Database dengan nama tutorial, kemudian Dumping / Import kode SQL di bawah ini:
1 2 3 4 5 6 7 |
CREATE TABLE `artikel` ( `artikel_id` int(11) NOT NULL auto_increment, `artikel_tanggal` date NOT NULL, `artikel_judul` varchar(100) NOT NULL, `artikel_konten` text NOT NULL, PRIMARY KEY (`artikel_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; |
Dari kode SQL diatas maka kita akan mendapatkan satu Table dengan nama artikel dan empat buat field.
Selanjutnya Insert beberapa data di tabel tersebut, jika tidak masu repot, dumping saja kode SQL di bawah ini:
1 2 |
INSERT INTO `artikel` VALUES (1, '2023-04-28', 'Artikel Tutorialweb', 'hay.. ini artikel yang cukup bagus untuk anda baca.'); INSERT INTO `artikel` VALUES (2, '2023-05-02', 'Hanya Artikel Lainnya', 'Hallooo... Ini hanya artikel lainnya. Untuk mendapatkan lebih banyak tutorial kunjungi www.tutorialweb.net'); |
Data sudah didapatkan, dan tahap selanjutnya adalah membuat Script untuk menampilkan data dari Database yang sudah dibuat di atas.
Silahkan buat sebuah file dengan nama index.php kemudian ketikkan Script di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<html> <head> <title>Date to Indo</title> </head> <body> <?php mysql_connect("localhost", "root", "root"); mysql_select_db("tutorial"); $sql = mysql_query("SELECT * FROM artikel ORDER BY artikel_id DESC"); if(mysql_num_rows($sql) == 0){ echo 'Tidak ada data!'; }else{ echo '<h1>Artikel Terbaru</h1>'; while($row = mysql_fetch_assoc($sql)){ echo '<h3>'.$row['artikel_judul'].'</h3>'; echo '<i>Ditulis tanggal : '.$row['artikel_tanggal'].'</i>'; echo '<p>'.$row['artikel_konten'].'</p>'; } } ?> </body> </html> |
Dari Script diatas akan mendapatkan tampilan di browser seperti gambar di bawah ini:
Seperti pada gambar di atas pada bagian Ditulis tanggal, terlihat format tanggal masih YYYY-MM-DD, dan sekarang akan kita rumah agar menjadi format tanggal Indonesia.
Buat sebuah file lagi, kali ini beri nama indo.php kemudian ketikkan Script di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php function TanggalIndo($date){ $BulanIndo = array("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"); $tahun = substr($date, 0, 4); $bulan = substr($date, 5, 2); $tgl = substr($date, 8, 2); $result = $tgl . " " . $BulanIndo[(int)$bulan-1] . " ". $tahun; return($result); } ?> |
Dari Script di atas bisa dijelaskan:
- Baris ke 2 membuat fungsi baru dengan nama TanggalIndo dimana nanti akan mengambil data Date.
- Baris ke 3 membuat sebuah variabel dengan nama BulanIndo dimana akan memuat array dari nama-nama bulan Indonesia mulai dari Januari sampai Desember.
- Baris ke 5 membuat variabel dengan nama tahun dimana mengambil empet digit pertama dari format Date yaitu tahun.
- Baris ke 6 membuat variabel dengan nama bulan dimana mengambil dua digit mulai dari digit ke lima dari format Date yaitu tahun.
- Baris ke 7 membuat variabel dengan nama tgl dimana mengambil dua digit mulai dari digit ke delapan dari format Date yaitu tahun.
- Baris ke 9 membuat variabel result dimana variabel ini membentuk format untuk tanggal Indonesia.
Nah, Script untuk merubah format tanggal sudah dibuat, sekarang tinggal merubah sedikit isi dari script index.php agar bisa berjalan dengan baik. Dan berikut ini adalah hasil akhir dari script index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<html> <head> <title>Date to Indo</title> </head> <body> <?php include("indo.php"); mysql_connect("localhost", "root", "root"); mysql_select_db("tutorial"); $sql = mysql_query("SELECT * FROM artikel ORDER BY artikel_id DESC"); if(mysql_num_rows($sql) == 0){ echo 'Tidak ada data!'; }else{ echo '<h1>Artikel Terbaru</h1>'; while($row = mysql_fetch_assoc($sql)){ echo '<h3>'.$row['artikel_judul'].'</h3>'; echo '<i>Ditulis tanggal : '.TanggalIndo($row['artikel_tanggal']).'</i>'; echo '<p>'.$row['artikel_konten'].'</p>'; } } ?> </body> </html> |
Perubahan yang dilakukan adalah menambahkan baris kode include(“indo.php”) dan merubah $row[‘artikel_tanggal’] menjadi TanggalIndo($row[‘artikel_tanggal’]).
Dan hasilnya bisa terlihat seperti gambar di bawah ini:
thakns kawan buwat share ilmunya sangat mebantu,..:)
seepppp…!
gan saya mau tanya ..
format waktu database saya dengan waktu di komputer berbeda 12jam cara benerinnya agar sesuai dengan waktu di komputer gmn gan ??
thanks
coba zona waktuy diganti
Cek disini gan http://www.dhiezain.com/belajar-php/2015/02/1/cara-mengatasi-perbedaan-waktu-dari-fungsi-date-di-php.html
Semoga membantu
Gan ada yang tau buat steeping proses. klo mau registrasi ada angkanya lagi di step berapa. kaya di kaskus gan. mohon pencerahaanya gan,
bisa pakek if gan. tapi agak susah juga logikanya..
atau pakek jQuery
Makasih gan,,, berguna banget
its work . .
Saya mau tanya, kalau kita harus menginputkan dahulu tanggal nya tanpa menggunakan date picker, gimana ya caranya???
kan kalo tipe tanggal defaulntya mysq l(Y-M-D), misalnya kalo ada yg menginput selain format tersebut, supaya tidak null dan benar, seperti apa ya kode porgramnya..
makasihhhhh
Terimakasih admin..sangat membantu skripsi saya
permisi gan klo baris ini bisa di jelasin ga ya… $BulanIndo[(int)$bulan-1] ? yg ane blm ngerti maksud (int)$bulan-1 itu apa yah… thanks.
itu karena array dimulai dari 0, jadi di array bulan itu januari=0, februari=1 dan seterusnya.
dan di database kan di mulai dari 1, jika di database bulan 1 maka di array itu februari, makanya harus di kurangi 1 (-1) agar bisa cocok dg januari 😀
Ribet, gue tau cara yg gampang, pake date_format(now(), ‘%d %M %Y’)
perkara selesai !
kereeeenn,,,,
bisa indonesia gak tu?
untuk hari gimana pak?
tidak bisa kalau pakai ini. soalnya hanya tanggal aja
kalau tanggal di database ada yang kosong kok jadi error yaa?
iya, soalnya kosong.
Kalo untuk $data di tabel, memasukkan .TanggalIndo-nya di sebelah mana?
tanggal indo hanya bisa digunakan untuk kolom tipe data date.