Membuat Helper Format Tanggal Indonesia pada codeigniter

Membuat Helper Format Tanggal Indonesia pada codeigniter

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.

Download Source

Share:




LAINNYA UNTUK ANDA


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.

Leave a Comment