Foros del Web » Programando para Internet » PHP »

mostrar la fecha en formato dd-mm-aa

Estas en el tema de mostrar la fecha en formato dd-mm-aa en el foro de PHP en Foros del Web. Saludos @migos Todos hemos pasado por problemas al mostrar la fecha ya que tienen el formato aa-mm-dd y para imprimir en nuestro formato que es ...
  #1 (permalink)  
Antiguo 05/04/2007, 05:44
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 20 años, 6 meses
Puntos: 1
mostrar la fecha en formato dd-mm-aa

Saludos @migos

Todos hemos pasado por problemas al mostrar la fecha ya que tienen el formato aa-mm-dd y para imprimir en nuestro formato que es dd-mm-aa recurrir a trucos o a utilizar el DATE_FORMAT en el MySql que a ratos se nos hace un poco dificultoso pero aqui les tengo una función que inclusive se puede mejorar, de ustedes ya dependende como lo arregla.

Código PHP:
function fechaes($fecha

  
$anio=substr($fecha,0,4); 
  
$mes=substr($fecha,5,2); 
  
$dia=substr($fecha,8,2); 
  
$dia=(int)$dia
  
$mes=(int)$mes
  
$anio=(int)$anio
  
$hora=substr($fecha,11,5); 
  
$nuevafecha="$dia-$mes-$anio $hora"
  return(
$nuevafecha); 

un saludo.
  #2 (permalink)  
Antiguo 05/04/2007, 10:08
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: mostrar la fecha en formato dd-mm-aa

Yo tengo otra o.o

Código PHP:
function fechaes($fecha) {
  return 
implode("-"array_reverse(explode("-"$fecha)));

Convierte de aa-mm-dd a dd-mm-aa y viceversa =P
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 05/04/2007, 14:13
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: mostrar la fecha en formato dd-mm-aa

Está buena! oso96_2000, me tome la molestia de "updatearla" para que tome no solo "-" :
Código PHP:
function fechaes($fecha) {
  return 
implode("-"array_reversepreg_split("/\D/"$fecha) ) );

__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 05/04/2007, 14:31
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
Re: mostrar la fecha en formato dd-mm-aa

Es muy recomendable formatear las fechas directamente en la base de datos con DATE_FORMAT, pero si no quieren (o no pueden) agregar el formato en las consultas creo que la mejor forma de hacerlo con php es mediante strtotime() y date(). Con la primera se crea un timestamp a partir de una cadena, acepta valores como '2007-12-28', con hora, y hasta cosas como "now", "+1 week", etc. Y con date() pueden dar el formato que necesiten.

<?php echo date('d/m/Y', strtotime($Fecha));?>

Y todo con funciones nativas de PHP.
__________________
JmN
  #5 (permalink)  
Antiguo 05/04/2007, 14:36
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: mostrar la fecha en formato dd-mm-aa

De más esta decir que lo mas correcto o eficiente es, en caso de poder (nacimientos por ejemplo no), tener guardado un timestamp, en un campo int/timestamp.
De ahí si, se puede aplicar un date o gmdate sobre dicho timestamp con un formato definido en una constante del sistema (ej: date( FORMATO_FECHA, $datoTimestamp ) ).

Ahora, no comparto lo de la db, hacer el proceso en la db no es recomendable, cuanto más se pueda desligar a la db de tareas es mejor, en cualquier sentido.

Edit: La forma que posteo oso96_2000 usa funciones nativas de PHP, no entiendo por que destacas esto en tu comentario....
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 05/04/2007, 14:55
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
Re: mostrar la fecha en formato dd-mm-aa

Cita:
Edit: La forma que posteo oso96_2000 usa funciones nativas de PHP, no entiendo por que destacas esto en tu comentario....
Me referia a una funcion nativa de PHP, que estan implementadas en C, la ventaja en cuanto performace en realidad es mínima. Mencionaba strtotime porque es una funcion muy versátil y, por ahí, no muy conocida...

En cuanto a dejar que haga la db, es mucho mas eficiente hacerlo con mysql, de nuevo funciones nativas, a escribir mas código en PHP que tiene que ser compilado... la única desventaja que le veo es si la aplicación esta mas pensada y estructurada, donde estarías dejando algo meramente de formato de los datos dentro de una consulta.

Slds
__________________
JmN
  #7 (permalink)  
Antiguo 05/04/2007, 16:15
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: mostrar la fecha en formato dd-mm-aa

Comparto la idea de usaro el timestamp en un campo INT... suficientes accesos hago a la BD como para encima pedile que formatee mis fechas....

Un timestamp, una constante con el format predefinido..... y la funcion date es todo lo que ncesito para las fechas.

Un saludo
  #8 (permalink)  
Antiguo 05/04/2007, 19:34
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: mostrar la fecha en formato dd-mm-aa

Esa funcion de cambiar la fecha salio un dia que lei algo parecido.. antes habian puesto un codigo donde se usaba explode o preg_split (creo), y luego se concatenaban las variables.. y como tengo la mania de querer que mi codigo sea corto, pues me fije que solo habia que invertir los valores y salio eso xD

Buena nicolaspar por esa pequeña modificación, asi es mas versatil.. he pensado en ponerle un segundo argumento a la funcion que sea el separador deseado.. tipo:

Código PHP:
function fechaes($fecha$sep '-') {
  return 
implode($separray_reverse(explode($sep$fecha)));

De ese modo podrias tomar una fecha como 2007/04/05 o cosas asi xD

Yo tmb prefiero manejar las fechas con el timestamp guardado en la DB.. en el ejemplo de jmn2k1, teniendo en la BD el timestamp se ahorra el tener que usar despues strtotime (creo).. y aunque yo lo uso asi generalmente, creo que depende mucho del tipo de palicacion que se este desarrollando, en algunas será mas facil manejar las fechas directamente a la hora de hacer la consulta, en otros casos es mas facil guardar el timestamp.. al menos eso pienso
__________________
Sin Ideas
  #9 (permalink)  
Antiguo 06/04/2007, 22:29
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: mostrar la fecha en formato dd-mm-aa

Que pasa si se incluye la hora .. por que existe datos de tipo DATETIME


un saludo.
  #10 (permalink)  
Antiguo 07/04/2007, 00:42
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: mostrar la fecha en formato dd-mm-aa

Pues, se hace un explode antes o.o.. para que haga lo mismo que tu funcion, seria (ya con la modificacion de nicolaspar)..

Código PHP:
function fechaes($fecha) {
  
$asdf explode(" "$fecha);
  return 
implode("-"array_reversepreg_split("/\D/"$asdf[0]) ) )." ".$asdf[1];

Bueno, doy por entendido que esta separado por un espacio..

aa/mm/dd hh:mm:ss
__________________
Sin Ideas
  #11 (permalink)  
Antiguo 07/04/2007, 06:30
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 20 años, 6 meses
Puntos: 1
Re: mostrar la fecha en formato dd-mm-aa

Felicidades oso96_2000

Incluilo en las FAQs.

un saludo.
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 16:26.