Foros del Web » Programando para Internet » PHP »

Problemas con Formatear una fecha

Estas en el tema de Problemas con Formatear una fecha en el foro de PHP en Foros del Web. Hola amigos, soy nuevo aqui y pues este foro me ha ayudado mucho, con solo leer los post de los otros usuarios, pero esta vez ...
  #1 (permalink)  
Antiguo 15/02/2008, 16:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas con Formatear una fecha

Hola amigos, soy nuevo aqui y pues este foro me ha ayudado mucho, con solo leer los post de los otros usuarios, pero esta vez me decidi a escribir xq tengo un gran problema y no se a que se deba:

Tengo un campo llamado TORD_FCH_ENT de tipo DATE

cuando hago un select me muestra la fecha de la siguiente manera:

Fecha de Entrada: "2008-02-15"

Como pueden ver la fecha es de la forma yyyy/mm/dd pero yo la quiero poner en la forma dd/mm/yyyy.

Estuve leyendo que usando el DATE_FORMAT(micampo,'%d-$m-%Y') me mostraria la fecha de esa manera, pero aun no he podido conseguirlo.

Aqui esta mi codigo:

Código PHP:
$sql="SELECT *,  DATE_FORMAT(TORD_FCH_ENT,'%d-$m-%Y') FROM tdsord1 WHERE TORD_FOL ='".$_POST['no']."' and TORD_SERIE= '".$_POST['ns']."'"
$resEmp=mysql_query($sql) or die (mysql_error()); 
Que estoy haciendo mal???........no me marca ningun error, pero la fecha me la sigue mostrando asi "2008-02-15".

De antemano gracias.
  #2 (permalink)  
Antiguo 16/02/2008, 03:53
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Ayuda A Formatiar Una Fecha

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 16/02/2008, 07:42
 
Fecha de Ingreso: enero-2008
Mensajes: 37
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

en la parte del mes as puesto un $ en vez del un %, espero que eso te lo resuelva. Un saluduo
  #4 (permalink)  
Antiguo 16/02/2008, 09:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Hola, jovi_javi:

Ya corregí ese error que mencionas, pero aun asi, tengo problemas ya que me sigue mostrando la fecha de la forma yyyy/mm/dd

Gracias por tu ayuda y Espero que me puedan seguir ayudando con este problemita...
  #5 (permalink)  
Antiguo 16/02/2008, 09:52
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Ayuda A Formatiar Una Fecha

Puedes hacerlo de esta manera con codigo PHP

Código PHP:
$fecha date("d-m-Y"$dato['fecha']); 
Donde $dato['fecha'] es el resultado del array que te lista los datos

Tambien prueba esto

Código PHP:
$sql="SELECT *,  DATE_FORMAT(TORD_FCH_ENT,'%d-%m-%Y') AS nfecha FROM tdsord1 WHERE TORD_FOL ='".$_POST['no']."' and TORD_SERIE= '".$_POST['ns']."'";  
$resEmp mysql_query($sql) or die (mysql_error());  
$datos mysql_fetch_array$resEmp );

// Pruebas a ver si te devuelve el formato correcto
echo $datos['nfecha']; 
Saludos.
  #6 (permalink)  
Antiguo 16/02/2008, 22:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Gracias Carlojas lo probare y te aviso si me funciona....
  #7 (permalink)  
Antiguo 25/02/2008, 11:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Carlojas tu solucion fue excelente.....

Gracias a jovi_javi por su aportacion....

Gracias tambien a Okram que me explico con mas detalle la solucion de Carlojas...
  #8 (permalink)  
Antiguo 25/02/2008, 11:27
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

yo tengo un problemilla mas o menos parecido. En mi caso, tengo un campo fecha donde se encuentra una fecha en formato año-mes-dia seguido de hora-minutos-segundos. Yo necesito usar solo la fecha, y en formato dia-mes-año. Me sirve la funcion esta de date format, o antes debo hacerle algo para eliminar la parte de la hora?
salu2 y gracias
  #9 (permalink)  
Antiguo 25/02/2008, 11:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

Puedes usar algo así:
Código PHP:
echo date"Y/m/d"strtotime$row['fecha'] ) ); 
strtotime, se encarga de transformar una fecha larga en un UNIX TIMESTAMP que luego puedes formatear con PHP.

Saludos.
  #10 (permalink)  
Antiguo 25/02/2008, 11:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 80
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Para que te muestre solo la fecha debes de poner tu campo tipo DATE, ya que lo debes de tener en DATETIME....

Una vez que lo puisiste en DATE, utiliza el metodo que menciona Carlojas (ese utilize yo y me funciono de maravilla).

Tambien puedes probar lo que te dice GatorV.

Salu2.
  #11 (permalink)  
Antiguo 25/02/2008, 11:54
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar algo así:
Código PHP:
echo date"Y/m/d"strtotime$row['fecha'] ) ); 
strtotime, se encarga de transformar una fecha larga en un UNIX TIMESTAMP que luego puedes formatear con PHP.

Saludos.
Voy a probarlo, pero mirando tutoriales me he encontrado con esto:
SQL Function Code:

SELECT DATE(CURRENT_TIMESTAMP); - returns a date (2004-06-22)

SELECT TIME(CURRENT_TIMESTAMP); - returns the time (10:33:11.840)

SELECT DAYOFWEEK(CURRENT_TIMESTAMP); - returns a numeric value (1-7)

SELECT DAYOFMONTH(CURRENT_TIMESTAMP); - returns a day of month (1-31)

SELECT DAYOFYEAR(CURRENT_TIMESTAMP); - returns the day of the year (1-365)

SELECT MONTHNAME(CURRENT_TIMESTAMP);
- returns the month name (January - December

SELECT DAYNAME(CURRENT_TIMESTAMP);
- returns the name of the day (Sunday - Saturday)

SELECT WEEK(CURRENT_TIMESTAMP); - returns number of the week (1-53)

Algunas de ellas, por ejemplo select month, funcionan perfectamente, pero select date, que es justo lo que me interesa, no, me dice que date no es una funcion valida. Es normal?
salu2 y gracias
  #12 (permalink)  
Antiguo 25/02/2008, 12:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

Puedes usar:
Código:
SELECT CURDATE()
Saludos.
  #13 (permalink)  
Antiguo 25/02/2008, 12:53
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar:
Código:
SELECT CURDATE()
Saludos.
Que funcion es esta? No me la reconoce como ninguna funcion valida
salu2
  #14 (permalink)  
Antiguo 25/02/2008, 12:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

Es una función para seleccionar la fecha actual: CURDATE

Saludos.
  #15 (permalink)  
Antiguo 25/02/2008, 13:50
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Pues tampoco me funciona, pero creo que estas son funciones de MySQL, supongo que no me funcionaran al estar yo usando SQL Server. Hay alguna funcion para SQL Server que haga lo mismo? Lo mejor que he encontrado es usar convert() y convertir el campo datatime en una cadena de caracteres con dia-mes-año, el problema es que entonces se me ordena numericamente en lugar de ordenarse por fecha
salu2 y gracias
  #16 (permalink)  
Antiguo 25/02/2008, 15:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

En ese caso utiliza la función de PHP que puse mas arriba.

Saludos.
  #17 (permalink)  
Antiguo 26/02/2008, 09:25
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Te refieres a esto: echo date( "Y/m/d", strtotime( $row['fecha'] ) ); ?
Si e asi, en $row['fecha'] que iria, el campo de la BD obtenido?
salu2 y gracias
  #18 (permalink)  
Antiguo 26/02/2008, 09:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

Así es.

Saludos.
  #19 (permalink)  
Antiguo 02/03/2008, 13:16
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Bueno, finalmente lo he conseguido usando CAST para convertir la fecha, pero gracias por la ayuda
salu2
  #20 (permalink)  
Antiguo 01/04/2008, 11:51
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Como dije, al final consegui formatear la fecha usando
Código:
LTRIM(STR(DAY(Fecha)))+'/'+LTRIM(STR(MONTH(Fecha)))+'/'+LTRIM(STR(YEAR(Fecha)))
Pero ahora tengo otro problema: el campo Fecha es de tipo datetime y ademas de la fecha indica la hora, y ahora necesito formatear la hora y usarla para calculos. Que funciones existen para la hora? No funciona nada parecido a lo anterior usando HOUR, MIN o SEC

salu2 y gracias
  #21 (permalink)  
Antiguo 01/04/2008, 12:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda A Formatiar Una Fecha

Revisa aquí: http://dev.mysql.com/doc/refman/4.1/...functions.html

Saludos.
  #22 (permalink)  
Antiguo 02/04/2008, 09:14
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda A Formatiar Una Fecha

Cita:
Iniciado por GatorV Ver Mensaje
Gracias, le he echado un vistazo pero me encuentro con el mismo problema que tuve para las fechas: que hay un monton de funciones utiles pero SQL Server no las soporta. Asi que buscando un poco mas por ahi he encontrado esta que en principio me podria servir: CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )
Pero cuando lo uso me sale el siguiente error:
"No se permite la conversión implícita del tipo de datos datetime a float. Utilice la función CONVERT para ejecutar esta consulta."
Que significa? Como podria solucionarlo?
salu2 y gracias

Última edición por Henki; 02/04/2008 a las 10:09
  #23 (permalink)  
Antiguo 05/04/2008, 05:18
Avatar de Henki  
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problemas con Formatear una fecha

permitidme que suba el post porque me interesa solucionarlo y no consigo hacerlo
salu2
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:38.