Foros del Web » Programando para Internet » PHP »

Mostrar fecha de mi BD en formato entendible al usuario

Estas en el tema de Mostrar fecha de mi BD en formato entendible al usuario en el foro de PHP en Foros del Web. Holas! Tengo un prblema, estoy ingresando las fechas en formato "año-mes-dia" a mi BD pq ese es que acepta el tipo date de sql. al ...
  #1 (permalink)  
Antiguo 01/12/2006, 09:01
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
Desacuerdo Mostrar fecha de mi BD en formato entendible al usuario

Holas!
Tengo un prblema, estoy ingresando las fechas en formato "año-mes-dia" a mi BD pq ese es que acepta el tipo date de sql.

al mostrarla tengo problemas pq quiero que aparezca en un formtato que yo quiera (ej "30 de Noviembre del 2006" o el que se me ocurra). pero me la muestra asi: "2006-11-30"

¿Como puedo cambiarle el formato al momento de mostrarla?
las fechas las estoy mostrando en un recorrido asi:
Código PHP:
echo "<td>".$row["fecha"]."</td> \n"
Saludos a tods y ojala me ayuden
  #2 (permalink)  
Antiguo 01/12/2006, 09:07
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Claro es facil........

Acà en foros del web, en los FAQ's, puedes encontrar mucha info para saber como tratar esto, de todas formas, sino estoy mal, es que no me acuerdo muy bien, en la pagina 2 o 3 de los FAQ's de php, encontraràs una funciòn que te permite mostrar la fecha en español, y te deja usarla, como la funciòn date que utiliza php.

Perdòn por no votarte el link.

Saludos.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 01/12/2006, 09:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
De acuerdo La pagina

Mira en los FAQ's de php, entra a la pàgina 3 y mira el mensaje #84.

Espero te sirva.

Saludos.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 01/12/2006, 09:19
 
Fecha de Ingreso: septiembre-2003
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 1
ocupa la funcion explode
  #5 (permalink)  
Antiguo 01/12/2006, 09:22
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
xcias por las repuestas, estaba mirando ya los faqs y averiguare sobre la funcion explde atmbien
  #6 (permalink)  
Antiguo 01/12/2006, 13:50
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
ya lo hice asi y lo cambio sin niungun problema:

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


pero tengo un detalle que no puedo solucionar, estoy mostrando mis datos en un do-while asi
Código PHP:
do {
echo 
"<table border = '1'> \n";
echo 
"<tr> \n";
echo 
"<td>".$row["fecha_rsala"]."</td> \n";
echo 
"</table> \n";
} while (
$row mysql_fetch_array($result)); 
y al cambiar $row["fecha_rsala"] por esto $row["$var[2]-$var[1]-$var[0]"] me sale Notice: Undefined index: 01-12-2006 in...

¿Como deberia escribirlo para que me aparezca bien?

SALUDOS
  #7 (permalink)  
Antiguo 01/12/2006, 15:44
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Cita:
Iniciado por gazuzax Ver Mensaje
$row["fecha_rsala"] por esto $row["$var[2]-$var[1]-$var[0]"] me sale Notice: Undefined index: 01-12-2006 in...

¿Como deberia escribirlo para que me aparezca bien?
Pues iguala lo que obtienes del explode, no coloques $row["$var[2]-$var[1]-$var[0]"]. Mas bien haz: $fechamodi="$var[2]-$var[1]-$var[0]"; y ya!!!, sale, mandas el echo a $fechamodi.

Espero te sirva.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 01/12/2006, 16:09
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
hola Carxl, ya se me habia ocurido eso, de hecho lo hice asi:
esto fuera del ciclo:

$var = explode('-',$row["fecha_rsala"]);
$fecha_user="$var[2]-$var[1]-$var[0]";

el ciclo:
Código PHP:
do { 
echo 
"<table border = '1'> \n"
echo 
"<tr> \n"
echo 
"<td>".$row["fecha_user"]."</td> \n"//ESTA LINEA
echo "</table> \n"
} while (
$row mysql_fetch_array($result)); 
pero me seguia saliendo Notice: Undefined index: fecha_user in...(linea marcarda mas ariba) , y si ponia echo "<td>".$fecha_user."</td> \n"; me imprmia solo la primera fecha repetidamente en la lista

QUE HAGO??
  #9 (permalink)  
Antiguo 01/12/2006, 16:35
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 19 años, 4 meses
Puntos: 3
Simplemente, hazlo con una funcion. Suponiendo que tu fecha es dia - mes - año, yo usaria esto:
Código PHP:
function fecha($valorf) {
$var explode('-'$valorf]);
echo 
"Dia $var[0] - Mes $var[1] - Año $var[2]";

y luego llamas la funcion en tu while:
Código PHP:
do {  
$var fecha($row["fecha_user"]);
echo 
"<table border = '1'> \n";  
echo 
"<tr> \n";  
echo 
"<td>".$var."</td> \n"//ESTA LINEA 
echo "</table> \n";  
} while (
$row mysql_fetch_array($result)); 
Asi, si tu tienes Dia - Mes - año pues modificas a tu gusto. Si quieres que salgan los meses, a currarselo. Pones switch($var[1]) { (en el caso de que el mes este enmedio) y vas poniendo:
Código PHP:
case 1:
$mes "Enero";
break; 
y asi podras hacer un completo sistema de lectura de fechas :P alguna duda, ya sabes. Si no entiendes mucho lo de explode, nosotros te lo explicamos.
  #10 (permalink)  
Antiguo 01/12/2006, 17:33
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
En respuesta a HEBO, no haría falta hacer un switch para ello. Yo me quedo con una array. (Aunque... no se si el mes en lugar de ser 1, 2, 3... sería 01, 02, 03.... y si eso puede dar problemas. )

Código PHP:
$var explode('-'$fecha);

/* $var[2] es el dia, $var[1] es el mes, $var[0] es el anyo */
 
$meses = array("""Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Noviembre""Diciembre");

$mes_actual_numero $var[1]; 
$mes_actual_letras $meses[$mes_actual_numero];

echo 
$mes_actual_letras//Esto devolveria Diciembre 

Al autor del post, con una simple variable bastaría, como te han dicho antes. Pero no tienes que usar el prefijo $row[] ya que no estás cogiendo un dato de la base de datos, sino que lo modificaste antes. O si quieres puedes hacerlo en el mismo momento...

Código PHP:
do {
$fecha $row["fecha_rsala"];
$explorar explode ("-"$fecha);
$fecha_bien "$var[2]-$var[1]-$var[0]";
 
echo 
"<table border = '1'> \n";
echo 
"<tr> \n";
echo 
"<td>".$fecha_bien"</td> \n";
echo 
"</table> \n";
} while (
$row mysql_fetch_array($result)); 
Suerte

Última edición por david_M_G; 01/12/2006 a las 17:41
  #11 (permalink)  
Antiguo 01/12/2006, 17:42
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
xcias amigo hebo por tu repuesta, es muy buena pero la verdad yo no he hecho funciones antes y no me kedo muy clara la tuya...

ya, yo ya habia definido esto cierto?:
Código PHP:
$var explode('-',$row["fecha_rsala"]);
$fecha_user="$var[2]-$var[1]-$var[0]"
podrias realizar de nuevo tu funcion a esas variables porfavor? , pq como la hiciste no entiendo cual seria la variable $valorf y tampoco entiendo pq usaste fecha_user en el ciclo si segun la funcion no se ha definido.

disculpa si te pido que la hagas de nuevo, pero estoy confundido sobre que variable va en que lugar y con esto fuuncionando en mi sistema, ya aprenderia a usar una funcion. Salud2 y desde ya xcias
  #12 (permalink)  
Antiguo 01/12/2006, 17:46
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
Gazuzax, ¿has probado mi solución?
  #13 (permalink)  
Antiguo 01/12/2006, 17:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 18 años, 1 mes
Puntos: 0
Te pasaste david_M_G, eso era lo que yo no sabia como debia escibir, lo hice asi y ahora me muestra bien la fecha segun la fila en que esta, muchas gracias!

hebo, sobre tu solucion = me gusto pero sigo con esas dudas si la pudieras responder de todas formas trataria de hacerlo y junto con la sugerencia tambien de david_M_G veria si la hago funcionar.

de todas aneras gracias a todos
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 22:36.