Format date – Convert from one format to another in PHP

Here is the function i used for some of my projects where date format to be needed in different formats. What it does is, it takes the format you need from the format you have. It does check for which format the date is. ie, is it in mm/dd/YYYY or mm-dd-YYYY or YYYY-mm-dd format. You may add more formats if you would like to compare with other formats.

function dateFormat($format='m/d/Y', $inputFormat=NULL, $showTodayDate=true) {
	if(!is_null($inputFormat)){
		//$arrInputFormat = split
		if($inputFormat[2]=='/'){//mm/dd/YYYY format
			list($m,$d,$Y) = explode("/", $inputFormat);
		}

		if($inputFormat[2]=='-'){//mm-dd-YYYY format
			list($m,$d,$Y) = explode("-", $inputFormat);
		}

		if($inputFormat[4]=='-'){//YYYY-mm-ddd format
			list($Y,$m,$d) = explode("-", $inputFormat);
		}
		if(empty($inputFormat)){
			return '';
		}

		$time = strtotime("$Y-$m-$d");
	} else {
		//$inputFormat is empty
		if(!$showTodayDate){
			return '';
		} else {
			$time = time();
		}
	}
	return date($format, $time);
}

If the inputFormat is empty and showTodayDate is true then you get the today date in formatted date, else empty string. Empty string is because, if sometime we display date from DB table which is  null or empty.

Leave a Reply