Uno de los problemas al recuperar una fecha desde MySQL es que te la devuelve en formato aaaa-mm-dd, el cual tiene su lógica a la hora de hacer comparaciones de fechas, pero es un pelín engorroso y raro mostrarlo así en pantalla. Antaño usaríamos una expresión regular para arreglarlo pero en PHP 5 hay una solución mejor, por lo que he actualizado el artículo (por eso y porque en la solución antigua usaba ereg que actualmente es una función obsoleta), ya que con un objeto DateTime se acaba el mamoneo:
/////////////////////////////////////////////////// //Convierte fecha de mysql a español //////////////////////////////////////////////////// function cambiaf_mysql($fechadb){ //vamos a suponer que recibmos el formato MySQL básico de YYYY-MM-DD //lo primero es separar cada elemento en una variable list($yy,$mm,$dd)=explode("-",$fechadb); //si viniera en otro formato, adaptad el explode y el orden de las variables a lo que necesitéis //creamos un objeto DateTime (existe desde PHP 5.2) $fecha = new DateTime(); //definimos la fecha pasándole las variabes antes extraídas $fecha->setDate($yy, $mm, $dd); //y ahora el propio objeto nos permite definir el formato de fecha para imprimir que queramos echo $fecha->format('d-m-Y'); }
Como podéis ver la cosa es sencilla. Sobre todo para el tema de insertar fechas desde PHP a MySQL. Porque si vuestra cuita es mostrar en pantalla la fecha formateada, también podéis pedir que MySQL os la devuelva con el formato que queráis. Basta con usar la función date_format() en la query de la select. En el ejemplo vamos a pedir que nos devuelva la fecha con el formato español ya:
SELECT DATE_FORMAT(campo_fecha,'%d/%m/%Y') FROM tabla
Ale, artículo actualizado para vuestro gozo y disfrute.