Foros del Web » Programando para Internet » PHP »

Formato de salida de fecha que está dentro de bd

Estas en el tema de Formato de salida de fecha que está dentro de bd en el foro de PHP en Foros del Web. Qué tal, tengo lo siguiente: base de datos access campo de tipo date que guarda fechas en formato dd/mm/aaaa Al sacarlo me imprime aaaa-mm-dd-00:00:00 ...y ...
  #1 (permalink)  
Antiguo 03/07/2005, 06:45
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Formato de salida de fecha que está dentro de bd

Qué tal,

tengo lo siguiente:

base de datos access
campo de tipo date que guarda fechas en formato dd/mm/aaaa
Al sacarlo me imprime aaaa-mm-dd-00:00:00

...y yo quiero que me lo muestra tal y como está en la bd

dd/mm/aaaa

¿Cómo puedo formatearla? ¿Existe alguna función del lenguaje o he de hacerme una funcioncita que me lo desmonte y me lo vuelva a montar?

...otra cosa, saben si esta forma de salida aaaa-mm-dd-00:00:00 puede variar de un servidor a otro?

gracias
  #2 (permalink)  
Antiguo 03/07/2005, 06:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
...antes de que me dejen el link aviso que yá pasé por http://php.grn.es/manual/es/function.date.php y si ahí está la solución pues no lo entiendo y que alguien me lo explique por favor que soy turra...
  #3 (permalink)  
Antiguo 03/07/2005, 13:41
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Hola, que tal? mira estube viendo y creo que lo puedes hacer de esta forma.

Código PHP:
<?php

$fecha 
"20-03-2004";

//Si el formato es aaaa-mm-dd tendria que cambiar las pocisiones de list
list($dia,$mes,$ano) = explode("-",$fecha);

echo 
$dia."/".$mes."/".$ano;

?>
Ahora si en la db te guarda el formato dd-mm-aaaa no creo que cuando lo formatees te cambie el formato, debe ser que en la db te guarda el formato que imprimes osea aaaa-mm-dd... Espero que te sirva lo que puse, sino vuelve a postear... Saludos.
  #4 (permalink)  
Antiguo 04/07/2005, 07:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Qué tal DarioDario,

gracias por responder.

Mira, en realidad en la base de datos está guardado como dd/mm/aaaa pero me lo saca en formato aaaa-mm-dd-00:00:00 osea, además de darle la vuelta le agrega hora minutos y segundos todo a 0.

No sabía si había alguna función del lenguaje que lo hiciera automáticamente.

Al final hice algo parecido a lo que me propones

Código PHP:
function dameFecha($f){
    
$fecha $f;
    
$fecha2 explode("-",$fecha);
    
$anio $fecha2[0];
    
$mes $fecha2[1];
    
$dia substr($fecha2[2],0,2);
    
$fechaf $dia."/".$mes."/".$anio;
    return 
$fechaf;


aunque no se me ocurrió usar list() como has hecho tú, creo que lo agregaré.

Ahora bien, mi inquietud es si en otro servidor puede devolver un formato de salida distinto. Ahora estoy trabajando sobre mi servidor local que es un IIS bajo windows pero finalmente la aplicación correrá sobre un Apache bajo Linux ... si ahí me saca, por ejemplo, el formato tal cual está en la bd devolverá una cadena incorrecta

Bueno, yá te contaré

Muchas gracias por tu ayuda DarioDario

Un saludo
  #5 (permalink)  
Antiguo 04/07/2005, 15:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 14
Antigüedad: 13 años
Puntos: 0
Me pueden ayudar yo tengo un problema parecido, el problema es que a mi base de oracle tengo dd/mm/yyyy pero al mometo de visualizar la consulta se ve 30-jun-05, y yo necesito ver 30/06/2005 tal como tengo en la base de oracle gracias por su ayuda
  #6 (permalink)  
Antiguo 04/07/2005, 17:11
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Buenas, miren nunca me encontre con un problema de su tipo, pero se tienen que dar cuenta que una vez entregadas las cosas (ej. la DB nos devuelve dd/mm/aaaa) y cuando lo imprimimos cambia la forma, el problema radica en la forma que lo formatean.
Tunait, mira en teoria no tendria que cambiar la forma de que son entregadas las cosas si se cambia de servidor, ahora si usas otro tipo de DB puede cambiar, ahora les diria a los dos, que muestren el codigo donde extraen la fecha y como la formatean para saber si el problema es realmente cuando lo formatean. Saludos.
  #7 (permalink)  
Antiguo 05/07/2005, 00:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Igual sugeriría buscar una solución por parte de SQL... al menos en MySQL se cuenta con la función DATE_FORMAT() la cuál da formato de salida y, obviamente, esto resulta más óptimo. El uso de esta función --por si igual esta disponible en ACCESS y/u Oracle-- sería:
Código:
SELECT DATE_FORMAT(campo_fecha, '%d-%m-%Y') AS fecha FROM tabla
Tunait: respecto a el uso de la función date(), ésta solo sirve pasándole una fecha en TIMESTAMP. Así que, para utilizarla primero necesitarías pasar tu fecha por la función mktime() ó strtotime(); ignoro si con la última te reconosca el formato directo... pero para la primera tendrías que hacer --en tu caso-- un explode() para ocuparla... definitivamente no es mejor de lo que tienes pero es lo que se tendría que hacer... solo como comentarios.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 05/07/2005, 12:37
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por DarioDario
Tunait, mira en teoria no tendria que cambiar la forma de que son entregadas las cosas si se cambia de servidor, ahora si usas otro tipo de DB puede cambiar, ahora les diria a los dos, que muestren el codigo donde extraen la fecha y como la formatean para saber si el problema es realmente cuando lo formatean. Saludos.
No, si problema ahora mismo no me da. Paso el valor que sale de la BD a la función y lo devuelve bien. Si bajo otro SO y servidor no hay cambios en la salida de la fecha desde la BD pues mejor que mejor (si me lo cambia yá vendré por acá a contarlo )

Cita:
Iniciado por jam1138
Tunait: respecto a el uso de la función date(), ésta solo sirve pasándole una fecha en TIMESTAMP.
Eso quiere decir que se lo he de pasar como tipo date y no como tipo string? En la bd está guardado como tipo date
  #9 (permalink)  
Antiguo 05/07/2005, 13:30
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 13 años
Puntos: 7
Puedes usar la combinación de la función date y strtotime, aquí el ejemplo:

echo date('d/m/Y', strtotime('2005-12-5'));

Debes tener en cuenta que la función strtotime acepta sólo el formato "Año-Mes-Día"

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 11:29.