function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

function formatDate($date, $format = 'Y-m-d H:i:s' ) {
	if (empty($date)) {
		return $date;
	}
	$date = trim($date);
	if (validateDate($date, $format) == 1) {
		return $date;
	} else {
		$D = explode(' ', $date);
		if (count($D) == 2) {
			$d = $D[0];
			$h = $D[1];
		} else {
			$d = $D[0];
			$h = '00:00:00';
		}
		$elm = date_parse($date);
		return DateTime::createFromFormat('Y-m-d H:i:s', $elm['year'] .'-'. str_pad($elm['month'],2,'0',STR_PAD_LEFT) .'-'. str_pad($elm['day'],2,'0',STR_PAD_LEFT) .' '. $h)->format($format);	
	}
}