Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mejorar codigo que obtiene fecha

Estas en el tema de Mejorar codigo que obtiene fecha en el foro de PHP en Foros del Web. Buen dia gente, les planteo mi duda... tengo el siguiente código Código PHP: function  cambiaf_mysql ( $fechadb ){     list( $yy , $mm , $dd )= ...
  #1 (permalink)  
Antiguo 11/05/2014, 06:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Mejorar codigo que obtiene fecha

Buen dia gente, les planteo mi duda... tengo el siguiente código

Código PHP:
function cambiaf_mysql($fechadb){
    list(
$yy,$mm,$dd)=explode("-",$fechadb);
    
$fecha = new DateTime();
        
$fecha->setDate($yy$mm$dd);
    echo 
$fecha->format('d-m-Y');

el cual me obtiene la fecha de una base de datos en mysql, de un campo datetime... pero ese es justamente el problema, que solo me obtiene la fecha, pero no la hora y los minutos, que tambien lo necesito, ¿Que debería modificar? Muchas gracias...
  #2 (permalink)  
Antiguo 11/05/2014, 07:47
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Mejorar codigo que obtiene fecha

Mucha cosa para solo cambiarle el formato a una fecha; adicional una funcion que maneja fechas no deberia imprimir nada solo devolver el valor
__________________
Salu2!
  #3 (permalink)  
Antiguo 11/05/2014, 07:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mejorar codigo que obtiene fecha

LA hora e una fecha desde la base de datos dependerá de si la base la almacena (columnas tipo de dato DATETIME, TIMESTAMP) y de cómo realizas a la consulta.
Lo que me parece innecesario es toda esa función para "construir" un DateTime, ya que MySQL tiene la capacidad de devolverte el dato en el formato adecuado, si sabes qué función usar en la query (cosa que dependerá del tipo de columna).
¿Qué tipo de columna tienes en lta tabla y cómo la consultas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/05/2014, 07:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Mejorar codigo que obtiene fecha

Ni siquiera necesitas hacer nada en PHP puesto que MySQL puede dar formatos con DATE_FORMAT(fecha,formato)

http://dev.mysql.com/doc/refman/5.5/...on_date-format


---
PD: el formato para DATETIME en MySQL es 'YYYY-MM-DD HH:MM:SS' y si quieres hacerlo en PHP seria algo asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3. /*
  4.     @param: fecha en formato 'YYYY-MM-DD HH:MM:SS'
  5.     @return: fecha en formato 'd-m-Y'
  6. */
  7. function cambiaf_mysql($fechadb){
  8.     list($fecha,$hms)=explode(" ",$fechadb);
  9.     list($yy,$mm,$dd)=explode("-",$fecha[0]);
  10.     // ... sigues
  11.     return $fecha_dmY
  12. }
__________________
Salu2!
  #5 (permalink)  
Antiguo 11/05/2014, 09:55
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mejorar codigo que obtiene fecha

No te compliques la vida
Código PHP:
Ver original
  1. $fechadb = '2014-05-11 17:56:00';
  2.  
  3. echo (new DateTime($fechadb))->format('d-m-Y');
  #6 (permalink)  
Antiguo 11/05/2014, 17:29
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Mejorar codigo que obtiene fecha

perdón la ignorancia pero hace rato que intento hacerlo mediante la consulta y no me sale, la consulta de la db, es la siguiente:

Código PHP:
$sql mysql_query("SELECT nombreLocal, ultimoCobro FROM locales WHERE id = '$id' LIMIT 1"$link) or die(mysql_error()); 
donde ultimoCobro es el timestamp de donde saco la fecha que visto en la base de datos desde phpmyadmin, se ve: "2014-05-10 23:50:36" mientras que en el "php impreso" yo querría ver algo como "10-05-2014 23:50:36" o mucho mejor si se pudiese "10 de Mayo de 2014 a las 23:50:36"

he probado de muchas formas pero mi brutalidad y novatez no me han permitido entender la documentación.

Si lo creen oportuno, habría que moverlo al foro de mysql, gracias por su ayuda... saludos
  #7 (permalink)  
Antiguo 11/05/2014, 17:46
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Mejorar codigo que obtiene fecha

Pues si el ID es numerico no deberias enviarlo como cadena colocandole comillas ;)

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT nombreLocal, ultimoCobro FROM locales WHERE id = $id LIMIT 1", $link) or die(mysql_error());

<< debes quitarselas como esta ahi



Te recomiendo sen serio chequees esto:

http://dev.mysql.com/doc/refman/5.5/...on_date-format
__________________
Salu2!
  #8 (permalink)  
Antiguo 12/05/2014, 08:38
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Mejorar codigo que obtiene fecha

Muchas gracias gnzsoloyo por tu paciencia y explicacion en un solo mensaje que me instó a averiguar un poco más y de manera adecuada llevandomé hacia la solución tácitamente...
Muchas gracias Italico76 por aportar absolutamente nada, un reproche despectivo en un primer mensaje, un código incompleto en un segundo mensaje, y por último un tercer mensaje con una sugerencia mal redactada y de un tema que nada tiene que ver con mi duda, (en otro post con otra duda anterior mia, fuiste igual de despectivo y luego desapareciste). Te pediría de ser posible, que en lugar de responder mis posteos, me dejes con todas las dudas posibles, ya que lo único que lográs, es que el resto no comente con verdaderos aportes porque en teoría vos ya saldaste mi duda cuando no es asi...

Por suerte lo pude resolver y les dejo el código para quien lo necesite...

Código PHP:
function formato($fecha){
$f=explode("-",$fecha);
$dia=explode(" ",$f[2]);
echo 
"El día ".$dia[0]."/".$f[1]."/".$f[0]." a las ".$dia[1];

La función lo que hace es imprimir en pantalla la fecha y hora en el siguiente formato: El día 12/05/2014 a las 07:27:29

Para el que no lo sabe, la función de más arriba se llama de la siguiente manera:
Código PHP:
formato($variable
donde variable es la que ustedes traerían por ejemplo en mi caso, desde la base de datos, saludos...

Etiquetas: datetime, fecha, timestamp
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:56.