Foros del Web » Programando para Internet » PHP »

mostrar fechas en formato legible por humanos

Estas en el tema de mostrar fechas en formato legible por humanos en el foro de PHP en Foros del Web. Tengo una base de datos con acontecimientos que ocurren en un día determinado. Quisiera mostrar una lista de los acontecimientos que todavía no hayan llegado. ...
  #1 (permalink)  
Antiguo 18/03/2006, 02:07
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 5 meses
Puntos: 1
mostrar fechas en formato legible por humanos

Tengo una base de datos con acontecimientos que ocurren en un día determinado. Quisiera mostrar una lista de los acontecimientos que todavía no hayan llegado. Creo que es posible, y no especialmente difícil, hacerlo con curdate()), pero es que encima necesito que las fechas se muestren tal que así: 11/diciembre/2006 y la verdad es que por más que lo intento no lo consigo. ¿Sabéis cómo hacerlo?

Gracias anticipadas.
  #2 (permalink)  
Antiguo 18/03/2006, 06:33
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Suponiendo que guardas la fecha en un campo tipo DATE, tendrías que hacer algo así:

SELECT *, DATE_FORMAT(fecha, '%d/%m/%Y') AS fecha FROM tabla WHERE fecha > CURDATE()

Esto te dará una fecha así: 11/12/2006 , y luego te haces una función en php que sustituya el número del mes por su nombre en español (si alguien sabe si la fecha se puede sacar directamente en español del MySQL, genial).
  #3 (permalink)  
Antiguo 18/03/2006, 07:00
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 5 meses
Puntos: 1
Cita:
Iniciado por mariogl84
y luego te haces una función en php que sustituya el número del mes por su nombre en español
Precisamente ese es el problema. Cualquiera consigue eso. Yo por lo menos, una vez que he sacado los datos de la base de datos ya no sé tratarlos, sólo mostrarlos, puesto que no son variables. No sé si me explico, es un poco difícil...

Gracias por tu respuesta, seguiré intnetándolo en la linea que tú dices.
  #4 (permalink)  
Antiguo 18/03/2006, 08:22
Avatar de bistoco  
Fecha de Ingreso: marzo-2006
Mensajes: 141
Antigüedad: 18 años, 1 mes
Puntos: 0
aki ta lo ke kieres, fijate en el formato

<?
//prueba_meses_espaniol.php
//
$meses['01'] ="Enero";
$meses['02'] ="Febrero";
$meses['03'] ="Marzo";
$meses['04'] ="Abril";
$meses['05'] ="Mayo";
$meses['06'] ="Junio";
$meses['07'] ="Julio";
$meses['08'] ="Agosto";
$meses['09'] ="Septiembre";
$meses['10'] ="Octubre";
$meses['11'] ="Noviembre";
$meses['12'] ="Diciembre";
// acepta solo formato dd/mm/aaaa
$fecha="11/01/2006";
$fecha=substr($fecha,0,2)."/".$meses[''.substr($fecha,3,2)]."/".substr($fecha,6,4);
//
echo $fecha;
?>

saludadiones
  #5 (permalink)  
Antiguo 18/03/2006, 08:43
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
aki te pongo otra funcion ke muestra la fecha como la deseas visualizar

Código PHP:
<?
  
function obtener_fecha_dmY($fecha) {
    
$nombres_mes=array(1=>"Enero""Febrero""Marzo""Abril""Mayo",   "Junio""Julio""Agosto""Septiembre""Octubre""Noviembre",  "Diciembre"  );
    
    
$ano=substr($fecha,0,4);
    
$mes=substr($fecha,5,2);
    
$dia=substr($fecha,8,2);
    
    
$dia=(integer)$dia;
    
$mes=(integer)$mes;
    
$mes=$nombres_mes[$mes];
    
    
    
$cadena=$dia."/".$mes."/".$ano;
    return(
$cadena);
  } 
?>
para ke esta funcion funcione(valga la redundancia) el campo fecha de tu tabla debe estar en el tipo DATE o DATETIME, luego para mostrar una vez hecha la consulta:

Código PHP:
<?
  
echo "function obtener_fecha_dmY($fecha)";
?>
saludos
  #6 (permalink)  
Antiguo 18/03/2006, 10:32
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 5 meses
Puntos: 1
Muchas gracias por vuestras respuestas. Ya me sale la fecha como quiero a la perfección .
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:52.