Por mi parte en su momento también me ví en el mismo dilema .. con el tiempo desarrollé funciones como las que propones pero más tarde descubrí el "maravilloso mundo del SQL" .. así que encontré funciones -directas- de SQL que resuelven el probema de una forma más "limpia" y sobre todo óptimo pues es un proceso que hará tu motor de tu BBDD y no a medias con el lenguaje que uses para obtener esos datos.
En concreto me refiero a:
DATE_FORMAT()
http://dev.mysql.com/doc/mysql/en/da...functions.html http://www.mysql-hispano.org/page.php?id=31&pag=6
Por ejemplo .. todo lo que expones se reduce en SQL en la misma sentencia SQL a:
Cita: SELECT DATE_FORMAT(fecha_datetime,’%d-%m-%Y %H:%i:%s') as mifecha FROM tabla
En $row['mifecha'] (creamos un alias para acceder al resultado fácilmente) tienes tu fecha con el formato que ahí compones. En general en la documentación de Mysql tienes bien claro que "códigos" usar para referirte a la parte de la fecha que necesitas y darle el formato que gustes.
En resumen, se trata de "estudiar" más SQL para resolver los problemas típicos con el manejo de datos con SQL (Lenguaje Estructurado de Consultas) y no tanto con PHP.
Un saludo,