Foros del Web » Programando para Internet » PHP »

Convertir formato fecha de campos DATE

Estas en el tema de Convertir formato fecha de campos DATE en el foro de PHP en Foros del Web. Buenas. Ok... en este momento tengo un problemita con lo siguiente: Tengo una tabla X, esa tabla contiene un campo DATE. Ese campo almacena una ...
  #1 (permalink)  
Antiguo 12/04/2003, 19:30
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Pregunta Convertir formato fecha de campos DATE

Buenas.

Ok... en este momento tengo un problemita con lo siguiente:

Tengo una tabla X, esa tabla contiene un campo DATE. Ese campo almacena una fecha mediante la función CURDATE. Esa función trabaja con el formato: año/mes/dia.

¿Cómo convierto el formato a: dia/mes/año cuando hago el echo()?

Saludos !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #2 (permalink)  
Antiguo 12/04/2003, 19:46
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Bueno... lo logré hacer con un explode:

$var = explode('-',$variabledefecha);
echo "$var[2]-$var[1]-$var[0]";

Deberían indexar esta pregunta en la FAQ.

Gracias de todas formas.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #3 (permalink)  
Antiguo 12/04/2003, 22:06
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Trata de explicarla un poco mas detalladamente (la pregunta y la respuesta) y posteala tu mismo en las FAQ

__________________
Manoloweb
  #4 (permalink)  
Antiguo 13/04/2003, 03:41
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
Yo lo suelo hacer con substr():

Código PHP:
<?
function substr($fecha){
return 
substr($fecha8,2)."/".substr($fecha5,2)."/".substr($fecha04);
}<?
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 13/04/2003, 12:28
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Gracias Cain. Probé tu método y funciona perfectamente.

Thankz !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #6 (permalink)  
Antiguo 13/04/2003, 13:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Yo creo que seria mejor usar la funcion de MySQL DATE_FORMAT(), ya que dices que es un campo de una base de datos (supongo que MySQL). Otra opcion es recuperar el campo DATE como TIMESTAMP y usar la funcion de PHP date().

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 13/04/2003, 15:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Apuesto por DATE_FORMAT() .. Dandole el formato que quieras puedes presentarlo como quieras ..

Solo tendrías que crearte por ejemplo un alias de esa función que vas aplicar:

SELECT DATE_FORMAT(fecha,'%d/%m/%Y') as fecha_formato FROM tabla

ahí si luego haces tu típico while($row=mysql_fecht_array($result)) .. en $row['fecha_formato'] tendrías tu fecha con el formato que quieras .. y en $row['fecha'] tendrías el formato de fecha original ...

mas info:
http://www.mysql.com/doc/en/Date_and...functions.html

Este proceso sería trabajo de Mysql integro y no PHP/Msyql como es el caso de hacerlo con las funciones propuestas anteriormente.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 13/04/2003, 21:06
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Voto por el explode...

Puedes jugar más con los arrays.. además.. Amo a los arrays.

C ya !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #9 (permalink)  
Antiguo 13/04/2003, 23:27
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Estoy de acuerdo con drcyber, te da oportunidad de "jugar" mas con el resultado, aunque si los registros que vas a cambiar son MUUUCHOS.... bueno, convendrá más hacerlo desde la consulta (como dice Cluster).
__________________
Manoloweb
  #10 (permalink)  
Antiguo 14/04/2003, 02:32
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
Lo del DATE_FORMAT() de MySQL es lo más correcto. Pero cuando tienes que seleccionar todos los campos de una tabla, te es mas fácil hacer SELECT * FROM... que SELECT campo, camp2, DATE_FORMAT(campo3, mascara), .....
__________________
M a l d i t o F r i k i
  #11 (permalink)  
Antiguo 14/04/2003, 10:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Usando bien las mascaras de DATE_FORMAT() y en general todas las funciones de tratamiento de fechas, de numeros, de cadenas .. etc que dispone Mysql (o en general todo Motor de Base de datos) .. Es lo ideal y mas óptimo ..

Eso sí, requiere saber bien el SQL particular de la BD q estemos trabajando.

Una cosa es "amar" los arrays .. y otra bien distinta es programar una aplicación que se ejecute lo mas óptimo posible (tiempo de porceso vs recursos consumidos del servidor) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 14/04/2003, 10:45
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Ok... pero al usar la función DATE_FORMAT, tendría que aplicarla cada que voy a hacer un echo de la fecha. Yo solo imprimiré el último registro agregado de esa tabla.

¿No existe alguna forma de que pueda modificar el formato permanentemente? ¿Meto la función DATE_FORMAT en mi archivo de conex a mi BD?

SELECT DATE_FORMAT(fecha,'%d/%m/%Y') as fechaok FROM noticias

¿?
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #13 (permalink)  
Antiguo 14/04/2003, 11:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Pues si, debes usarlo en las consultas que hgas para obtener tu campo de la fecha formateado ..

Igual puedes hacer una consulta y guardarte esa fecha formateada en una variable comun .. como ya lo estas haciendo para presentarlo en tus echo q te hagan falta ...

Y .. la funcion DATE_FORMAT NOOOOOOOOOOOOOO es una función de PHP es de Msyql .. y como todas las funciones de Mysql se ejecutan cuando hagas tu mysql_query() con ese SQL particular ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 14/04/2003, 12:43
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Entiendo... pero podría meter en mi dbconn el siguiente query:

$ssql = "SELECT DATE_FORMAT(fecha,'%d/%m/%Y') as fechaok FROM noticias";
$result = mysql_query($ssql);

Asi de simple, entonces la fecha quedará formateada cada que se llame el archivo dbconn.php. Y no tendré que escribir el query cada vez que necesite mostrar la fecha.

¿Que opinan de eso? ¿Dará problemas?
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #15 (permalink)  
Antiguo 14/04/2003, 12:46
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Seguramente esa es la idea que te ha dado Cluster

Pruebala y verás...
__________________
Manoloweb
  #16 (permalink)  
Antiguo 14/04/2003, 13:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
A ver ... La idea es que SOLO cuando necesites de ese dato hagas la consulta a tu BD para obtenerlo (y obtenerlo foramteado si usas DATE_FORMAT en la consulta) ..

Yo no sé como tienes estructurado tu sitio .. Pero si, en principio puedes usar FUNCIONES para hacer operaciones "repetitivas" como esa por ejemplo, meterlo en algun archivo_funciones.php y llamarlas cuando las necesites ..

Pero lo que tienes que tener bien claro es que es "SQL" .. que es un lenguaje própio para hacer consultas a tu Base de datos ..

Seguro que de esa "consulta" que estas haciendo a esa tabla no solo obtienes ese dato de la fecha sino que extraes a la vez (o quisieras) obtener mas datos .. por ejemplo:

$ssql = "SELECT id,noticia,blabla,etc,DATE_FORMAT(fecha,'%d/%m/%Y') as fechaok FROM noticias";

Si es así .. esa es la consulta que tendras que hacer cuando lo requieras .. incluido esa función DATE_FORMTAT por medio en la consulta ...

Ahora .. q esa consulta la hagas en varios scripts y lo quieras reutilizar .. OK, entonces mete todo eso en una función y lo llamas cuando lo nececites ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:58.