Di sela-sela kesibukan mengerjakan project yang tiada hentinya cukup membuat stress apalagi harus mengikuti keinginan user yang aneh-aneh sehingga sering bertentangan dengan konsep perancangan dan aturan database yang semestinya demi memenuhi keinginan mereka, dan mereka tidak merpedulikan resiko yang kita jelaskan.
Itulah sedikit curhatan hari ini, hehee. tapi saya disini bukan untuk curhat. Melainkan untuk sharing ilmu.
Pada kesempatan kali ini, penulis akan sharing sesuatu yang sangat penting yaitu tentang bagaimana membuat helper format tanggal indonesia menggunakan codeigniter.
Hmm., mengapa harus membuat helper?
Codeigniter merupakan framework PHP yang memiliki banyak library dan helper. Codeigniter juga tidak membatasi developer untuk membuat helper sendiri jika helper yang disediakan tidak memenuhi kebutuhan developer.
Format tanggal indonesia tidak tersedia pada library ataupun helper bawaan codeigniter. Jadi kita harus membuat helper sendiri untuk memenuhi kebutuhan ini. Sangatlah penting untuk membuat helper karena sekali kita membuatnya, helper ini dapat digunakan untuk project berikutnya dan tanpa harus membuatnya lagi. Itulah alasan kenapa kita perlu membuat format tanggal indonesia menjadi sebuah helper.
Adapun format tanggal dari helper yang akan kita buat adalah sebagai berikut:
#1. Default date, dengan format (’5 September 2017’).
#2. Short date, dengan format (‘5/09/2017’).
#3. Medium date, dengan format (‘5-Sep-2017’).
#4. Long date, dengan format (‘Selasa, 5 September 2017’).
Hmm.., keren bukan?
Ok, sekarang mari kita buat helpernya.
Pertama-tama tentu saja anda harus memiliki codeigniter terlebih dahulu. Jika anda belum memilikinya silahkan download di official websitenya www.codeigniter.com.
Sekarang silahkan ikuti langkah berikut:
1. Install codeigniter
Extract codeigniter ke www (jika menggunakan wampserver) atau htdocs (jika menggunakan XAMPP). Kemudian rename project codeigniter anda sesuai dengan project Anda. Disini saya memberi nama ci_indodate.
2. Buat helper format tanggal indonesia.
Buat PHP file dengan nama tgl_indo_helper.php dengan kode sebagai berikut:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if ( ! function_exists('tgl_indo')) { function date_indo($tgl) { $ubah = gmdate($tgl, time()+60*60*8); $pecah = explode("-",$ubah); $tanggal = $pecah[2]; $bulan = bulan($pecah[1]); $tahun = $pecah[0]; return $tanggal.' '.$bulan.' '.$tahun; } } if ( ! function_exists('bulan')) { function bulan($bln) { switch ($bln) { case 1: return "Januari"; break; case 2: return "Februari"; break; case 3: return "Maret"; break; case 4: return "April"; break; case 5: return "Mei"; break; case 6: return "Juni"; break; case 7: return "Juli"; break; case 8: return "Agustus"; break; case 9: return "September"; break; case 10: return "Oktober"; break; case 11: return "November"; break; case 12: return "Desember"; break; } } } //Format Shortdate if ( ! function_exists('shortdate_indo')) { function shortdate_indo($tgl) { $ubah = gmdate($tgl, time()+60*60*8); $pecah = explode("-",$ubah); $tanggal = $pecah[2]; $bulan = short_bulan($pecah[1]); $tahun = $pecah[0]; return $tanggal.'/'.$bulan.'/'.$tahun; } } if ( ! function_exists('short_bulan')) { function short_bulan($bln) { switch ($bln) { case 1: return "01"; break; case 2: return "02"; break; case 3: return "03"; break; case 4: return "04"; break; case 5: return "05"; break; case 6: return "06"; break; case 7: return "07"; break; case 8: return "08"; break; case 9: return "09"; break; case 10: return "10"; break; case 11: return "11"; break; case 12: return "12"; break; } } } //Format Medium date if ( ! function_exists('mediumdate_indo')) { function mediumdate_indo($tgl) { $ubah = gmdate($tgl, time()+60*60*8); $pecah = explode("-",$ubah); $tanggal = $pecah[2]; $bulan = medium_bulan($pecah[1]); $tahun = $pecah[0]; return $tanggal.'-'.$bulan.'-'.$tahun; } } if ( ! function_exists('medium_bulan')) { function medium_bulan($bln) { switch ($bln) { case 1: return "Jan"; break; case 2: return "Feb"; break; case 3: return "Mar"; break; case 4: return "Apr"; break; case 5: return "Mei"; break; case 6: return "Jun"; break; case 7: return "Jul"; break; case 8: return "Ags"; break; case 9: return "Sep"; break; case 10: return "Okt"; break; case 11: return "Nov"; break; case 12: return "Des"; break; } } } //Long date indo Format if ( ! function_exists('longdate_indo')) { function longdate_indo($tanggal) { $ubah = gmdate($tanggal, time()+60*60*8); $pecah = explode("-",$ubah); $tgl = $pecah[2]; $bln = $pecah[1]; $thn = $pecah[0]; $bulan = bulan($pecah[1]); $nama = date("l", mktime(0,0,0,$bln,$tgl,$thn)); $nama_hari = ""; if($nama=="Sunday") {$nama_hari="Minggu";} else if($nama=="Monday") {$nama_hari="Senin";} else if($nama=="Tuesday") {$nama_hari="Selasa";} else if($nama=="Wednesday") {$nama_hari="Rabu";} else if($nama=="Thursday") {$nama_hari="Kamis";} else if($nama=="Friday") {$nama_hari="Jumat";} else if($nama=="Saturday") {$nama_hari="Sabtu";} return $nama_hari.','.$tgl.' '.$bulan.' '.$thn; } }
Simpan kedalam directory application/helper/.
3. Buat controller dengan nama Tanggal.php dengan kode sebagai berikut:
<?php class Tanggal extends CI_Controller{ function __construct(){ parent::__construct(); $this->load->helper('tgl_indo'); } function index(){ echo shortdate_indo('2017-09-5'); echo "<br/>"; echo date_indo('2017-09-5'); echo "<br/>"; echo mediumdate_indo('2017-09-5'); echo "<br/>"; echo longdate_indo('2017-09-5'); } }
4. Silahkan jalankan controller tanggal dengan mengunjungi URL:
(http://localhost/ci_indodate/index.php/tanggal). Maka anda akan bisa melihat bagaimana helper ini bekerja.
OK, Sekian tutorial tentang bagaimana membuat helper format tanggal indonesia dengan codeigniter.
Semoga bermanfaat.
Komentar (12)
Devtrik, 26 January 2018 04:14 - Reply
Baris 4 sama 6 gak konsisten om :D
M Fikri, 15 February 2018 13:21 - Reply
Just Intermezo om. ehehe
Noval Dwi Putra, 02 August 2018 04:33 - Reply
Terima kasih banyak gan atas tutorialnya kali ini.. Saya mau nanya nih, ketika saya gunakan fungsi date_indo() pada inputan tanggal kan formatnya jadi "02 Agustus 2018" nah kalo saya mau balikin lagi untuk insert ke database jadi format "2018-08-02" itu gimana ya caranya? Regards,
M Fikri, 02 August 2018 07:37 - Reply
Gunakan value yang sebelumnya gan, bukan value yang di date_indo()!
Ilham, 23 September 2018 02:06 - Reply
Terimakasih kang Fikri atas ilmunya, jarang sekali tutorial lengkap mengenai CI, hanya di web akanglah yg terbaik. Semoga sehat selalu yaa, salam dari saya
M Fikri, 08 March 2019 08:58 - Reply
Terima kasih mas Ilham.
Kamabarus, 22 December 2018 11:45 - Reply
Sangat membantu kang dan saya sudah bisa membuat tanggal dinamis. Terima kasih
M Fikri, 08 March 2019 08:58 - Reply
Sama-sama Kamabarus
Sulistio, 05 March 2019 11:07 - Reply
Terima kasih mas, berhasil.
M Fikri, 08 March 2019 08:58 - Reply
Sama-sama Sulitio
Miko Smartblogger, 27 March 2019 10:07 - Reply
Mantap dah mas ilmunya, buat belajar custom helpers sendiri. Terima Kasih.