Skip to main content

Class Change Date Format

No replies
now... what????
zawaruddin's picture
User offline. Last seen 6 days 2 hours ago. Offline
Joined: 02/28/2011

Ni ada sharing dariku...
Moga bisa bermanfaat....

Sharing kali ini adalah membuat class untuk merubah format tanggal. Misal ingin merubah dari tanggal 12/02/2011 menjadi 2011/02/12 atau jadi 12 Februari 2011...

Langsung saja, ini code-nya (kalo masih ada kekurangan, tolong diperbaiki ya. Biar saling melengkapi.. hehe)

//author : Zawaruddin
class MZA_Date{
	public $separator;
	public $format = array();
 
	function change_format_date($date, $format_date, $new_format_date){
		$format_date = str_split($format_date);
		$this->split_date($format_date);
		$format_date = $this->format;
 
		$date = explode($this->separator,$date);
 
		$this->format = array();
		$new_format_date = str_split($new_format_date);
		$this->split_date($new_format_date);
		$new_format_date = $this->format;
		for($i=0;$i<count($new_format_date);$i++){
			for($j=0;$j<count($format_date);$j++){
				if(strcasecmp($format_date[$j],$new_format_date[$i]) == 0){
					$new_date[$i] = $this->check_format($date[$j],$new_format_date[$i]);
				}
			}
		}
		return $new_date[0].$this->separator.$new_date[1].$this->separator.$new_date[2];
	}
 
	function check_format($date, $format_date){
		switch ($format_date){
			case 'y' : $date = substr($date,-2);break;
			case 'M' : $date = $this->month_picker($date); break;			
			case 'm' : $date = $this->month_picker($date); break;
		}
		return $date;
	}
 
	function month_picker($month){
		$array_month = array(0 => "Januari", 1 => "Februari", 2 => "Maret", 3 => "April", 4 => "Mei", 5 => "Juni", 6 => "Juli",
			7 => "Agustus", 8 => "September", 9 => "Oktober", 10 => "November", 11 => "Desember");		
		if(is_int($month)){
			$month = intval($month);
			return $array_month[$month-1];
		}else{
			return array_search($month, $array_month)+1;
		}
	}
 
	function split_date($format_date){
		for($i=0;$i<count($format_date);$i++){
			if(ctype_alpha($format_date[$i])){
				array_push($this->format,$format_date[$i]);
			}else{
				$this->separator  = $format_date[$i];
			}
		}
	}
}

cara pakainya tinggal panggil fungsi yg pertama dalam class tersebut, yaitu
 change_format_date($date, $format_date, $new_format_date)
dimana parameter :
$date : tanggal yang mau di ganti
$format_date : format dari $date, jika $date = "13/02/2011" maka $format_date HARUS "d/m/Y"
$new_format_date : format tanggal yg baru

Format tanggal yg disediakan

 Y : seperti tahun "2011"
 y : seperti tahun "11", dua digit di depan dihilangkan
 M : seperti bulan "Februari"
 m : seperti bulan "02" atau "2"
 d : seperti tanggal "17"

Contoh pengggunaan

$DATE = new MZA_Date();
$date = date("d m Y");
$format = "d m Y";
$new_format = "d M Y";
 
$date = $DATE->change_format_date($date, $format, $new_format);

Berbagi ilmu itu indah...
Apabila masih terdapat kekurangan mohon d evaluasi juga ya... thank's ^_^

------------------------------------------------------------
Go..Go..Go.. CodeIgniter

Visit My Blog @ zawaruddin.blogspot.com

Premium Drupal Themes by Adaptivethemes