Tenés varias opciones.
Una es extender un poco más la función que ya tenés, agregándole la hora, minutos y segundos a la expresión regular: ([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})(\ ([0-9]{2}):([0-9]{2}):([0-9]{2}))$
Entonces la función te quedaría de esta manera:
Código PHP:
function convierte_fecha_a_castellano($fecha){
ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})(\ ([0-9]{2}):([0-9]{2}):([0-9]{2}))?$", $fecha, $mifecha);
$lafecha="{$mifecha[2]}/{$mifecha[1]}/{$mifecha[0]} {$mifecha[3]}:{$mifecha[4]}:{$mifecha[5]} ";
return $lafecha;
}
Otra sería convertir la fecha a formato UNIX, la cual en mi opinión es más fácil de implementar:
Código PHP:
function convertir_fecha($fecha, $formato = '%d/%m/%Y %H:%M:%s')
{
$timestamp = strtotime($fecha);
return strftime($timestamp, $formato);
}
Así podés utilizar la misma función para obtener fechas en el formato que quieras, dejando como predeterminado el que más uses.
Buscá información en php.net/strtotime y php.net/strftime para más detalles.