Foros del Web » Programando para Internet » PHP »

Formatos para Guardar y Consultar Fechas

Estas en el tema de Formatos para Guardar y Consultar Fechas en el foro de PHP en Foros del Web. Hola amigos, quisiera pedirles ayuda, tengo un campo de un formulario que solicita la fecha, el campo es tipo TEXT porque uso un Javascript con ...
  #1 (permalink)  
Antiguo 11/07/2003, 10:15
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Formatos para Guardar y Consultar Fechas

Hola amigos, quisiera pedirles ayuda, tengo un campo de un formulario que solicita la fecha, el campo es tipo TEXT porque uso un Javascript con un calendario para que se inserte dinamicamente y no tenga que escribirla el usuario (solo la selecciona del calendario y aparece solita en el campo). Bien, esa fecha la debo guardar en la base de datos (MySQL), obviamente la tendria que guardar en un campo tipo TEXT tambien ya que si la guardo en uno tipo de DATE no la guarda porque no es el mismo formato. (La que ingresa el usuario es DD/MM/AA y la que acepta MySQL como DATE es AAAA-MM-DD (creo que es asi). El asunto es que luego necesito mostrar en una lista todos los datos ordenados por fecha, hay alguna forma de decirle que me ordene por fecha si las fechas estan en un campo tipo TEXT? o una forma de convertir estos datos en el TEXT a un DATE para guardarlos luego como DATE en MySQL, ordenarlos cuando los liste, y a su vez mostrarlos en la misma lista pero otra vez con el formato DD/MM/AA??? porfa le agradezco sus ayudas.
  #2 (permalink)  
Antiguo 11/07/2003, 10:24
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
loq ue puedes hacer es transformar tanto la fecha que vas a introducir como la de recogida con algo asi:

Código PHP:
para guardar:

list( 
$year$month$day ) = split'[/.-]'$fecha );

y despues pues :

$fecha $year-$month-$day

y par visualizarlo
:

list( 
$year$month$day ) = split'[/.-]'$row["fecha"] );

$fecha $day/$month/$year 

no se si hay alguna funcion que lo haga automatico pero esto te puede servir seguro


Un Saludo
  #3 (permalink)  
Antiguo 11/07/2003, 10:30
Avatar de BrujoNic
Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.806
Antigüedad: 16 años, 1 mes
Puntos: 609
Vos te estas respondiendo completamente. Si ya tenes tu fecha en formato DD/MM/AAAA, lo que debes hacer es una función para que tome la fecha en ese formato y la convierta en AAAA-MM-DD para almacenarla en MySQL.
Código PHP:
$fecha_usuario "05/12/2003";
$fecha_MySQL SUBSTR($fecha_usuario7) . "-";
$fecha_MySQL $fecha_MySQL SUBSTR($fecha_usuario42) . "-" ;
$fecha_MySQL $fecha_MySQL SUBSTR($fecha_usuario1,2); 
Podes hacerlo en una sola línea, yo lo hice en varias ya que se corria mucho la presentación en el mensaje.

Si queres que el resultado de las fechas almacenadas en MySQL se te presenten en formato DD-MM-AAAA, podes usar la funcion date_format(fecha_MySQL, '%d-%m-%Y'). Consulta el manual de MySQL para que veas los formatos que podes usar con esa función.
__________________
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

Última edición por BrujoNic; 11/07/2003 a las 10:35
  #4 (permalink)  
Antiguo 11/07/2003, 10:35
 
Fecha de Ingreso: febrero-2003
Ubicación: Guanare
Mensajes: 90
Antigüedad: 14 años, 10 meses
Puntos: 0
En indice de las FAQ aparece una solución para formater fechas
  #5 (permalink)  
Antiguo 11/07/2003, 10:39
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
perfecto!....ya lo solucione...

list( $year, $month, $day ) = split( '[/.-]', $fecha );
$raya = "-";
$fecha = $year.$raya.$month.$raya.$day;

y listo! despues para visualizarlo lo vuelvo a convertir...

mil gracias...

que rapidez de respuesta!
  #6 (permalink)  
Antiguo 11/07/2003, 11:07
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
dnd para eso estamos aqui ayudar y ser ayudados

Un Saludo
  #7 (permalink)  
Antiguo 11/07/2003, 22:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Si queres que el resultado de las fechas almacenadas en MySQL se te presenten en formato DD-MM-AAAA, podes usar la funcion date_format(fecha_MySQL, '%d-%m-%Y'). Consulta el manual de MySQL para que veas los formatos que podes usar con esa función.
Yo les recomiendo esta opción .. usar DATE_FORMAT() de MYSQL y trabajar las fechas en un campo DATE .. Si a futuro pretendes hacer cálculos de fechas con tu campo "text" y tu própio formato de fechas .. veras lo que se pueden llegar a complicar las cosas .. Ademas, a la hora de "exportar" esos datos .. el formato "DATE" de mysql es standard "ODBC" .. osese, que .. nada de lios con como trata las fechas otros sistemas.

Si bien, ya optastes por una solución .. Ten presente lo que te comento.

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 14:00.