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.
A mi me funciono tu comentario, muchas gracias
Me funciono en mi base de datos que ya llevaba 20 minutos en ello jejejejeje Dios te bendiga
Excelente!! tenia un dia buscando la rutina que me facilitaste y funciono perfecto. muchas graciassssssssssssssss
Excelente el articulo, me funciono de maravilla. Muchas gracias.