Foros del Web » Programando para Internet » PHP »

Convertir fecha de formato DATETIME a formato normal (PHP/MYSQL)

Estas en el tema de Convertir fecha de formato DATETIME a formato normal (PHP/MYSQL) en el foro de PHP en Foros del Web. No habrán sido pocas las veces que hemos tenido que mostrar una fecha extraída de una base de datos MySQL y nos encontramos con que ...
  #1 (permalink)  
Antiguo 09/11/2006, 14:09
 
Fecha de Ingreso: noviembre-2006
Ubicación: República Dominicana
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 1
De acuerdo Convertir fecha de formato DATETIME a formato normal (PHP/MYSQL)

No habrán sido pocas las veces que hemos tenido que mostrar una fecha extraída de
una base de datos MySQL y nos encontramos con que tenemos que reordenarla del
todo ya que el formato DATETIME propio de SQL nos guarda la fecha de forma
'YYYY-MM-DD HH:mm:ss' y nosotros deseamos mostrarla en el formato típico
no-anglosajón, es decir: 'DD-MM-YYYY HH:mm:ss'

Pues bien, esta función lo que hace es precisamente eso, convertir una fecha
DATETIME que se le pasa como parámetro al tipo 'DD-MM-YYYY HH:mm:ss'.
Lo primero de todo es separar la cadena a través del guíon ‘-’.

Código PHP:
$fecha split("-",$row["fecha_datetime"]);
//Donde $fecha_datetime es la fecha que traemos de la BBDD 
Aquí habremos obtenido ya claramente el año y el mes, pero en el dia $fecha2 esta
tendrá un valor que será el día más lo que sigue a continuación.
Es decir, la hora, los minutos y los segundos.

Código PHP:
$hora split(":"$fecha[2]); 
Ahora en $hora[0] tendremos el día más la hora, mientras que $hora[1] serán los minutos y $hora[2] los segundos.
¿Qué nos queda? Pues por último dividir a partir del espacio.

Código PHP:
$fecha_hora split(" "$hora[0]); 
Y esto nos da como resultado que $fecha_hora[0] es el dia y $fecha_hora[1] son las
horas.
Ya solo nos queda armar la fecha y guardarla en una variable.

Código PHP:
$fecha_convertida $fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0].' '.$fecha_hora[1].':'.$hora[1].':'.$hora[2]; 
Y hacer un return de esa variable

Código PHP:
return $fecha_convertida
función convertir_fecha
Código PHP:
function convertir_fecha($fecha_datetime){
//Esta función convierte la fecha del formato DATETIME de SQL
//a formato DD-MM-YYYY HH:mm:ss
$fecha split("-",$row["fecha_datetime"]);
$hora split(":",$fecha[2]);
$fecha_hora=split("",$hora[0]);
$fecha_convertida=$fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0].'
'
.$fecha_hora[1].':'.$hora[1].':'.$hora[2];
return 
$fecha_convertida;

  #2 (permalink)  
Antiguo 09/11/2006, 17:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
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,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/01/2008, 17:11
Avatar de alcaphone  
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Convertir fecha de formato DATETIME a formato normal (PHP/MYSQL)

ui que buen aporte por parte de los 2, pero pos recomiendo la de Cluster es mejor, me ayudo mucho.

SALUDOS
__________________
Inteligencia = Locura * Sabiduria/ belleza
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:50.