Foros del Web » Programando para Internet » PHP »

Obtener fecha en formato español DD:MM:AAAA

Estas en el tema de Obtener fecha en formato español DD:MM:AAAA en el foro de PHP en Foros del Web. Hola a tod@s, tengo una base de datos MySQL en XAMPP, y los campos fechas (DATE), se guardan en formato americano (AAAA/MM/DD), estoy intentando mostrar ...
  #1 (permalink)  
Antiguo 10/06/2011, 10:37
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Obtener fecha en formato español DD:MM:AAAA

Hola a tod@s, tengo una base de datos MySQL en XAMPP, y los campos fechas (DATE), se guardan en formato americano (AAAA/MM/DD), estoy intentando mostrar en mi página web (proyecto ciclo de ASI), esas fechas en formato español (DD:MM:AAAA) y estoy utilizando los siguiente:

$sql_fecha="select fecha from reserva;";
$result=mysql_query($sql_fecha) or die ("nada de nada");

while ($registro = mysql_fetch_array($result))
{
$dateconv2 = implode( '-', array_reverse( explode( '/', $registro['fecha'] ) ) ) ;
echo "$dateconv2";
echo "<br>";
}

pero aún así no me funciona :S, no se que puede estar fallando saludos.
  #2 (permalink)  
Antiguo 10/06/2011, 10:40
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Obtener fecha en formato español DD:MM:AAAA

$cad = explode('/', "(AAAA/MM/DD");

echo $cad[2].":".$cad[1].":".$cad[0]; // DD:MM:AAAA
  #3 (permalink)  
Antiguo 10/06/2011, 10:42
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

A ver si te sirve esta función

Código PHP:
Ver original
  1. function fechaesp($date) {
  2.         $dia = explode("-", $date, 3);
  3.         $year = $dia[0];
  4.         $month = (string) (int) $dia[1];
  5.         $day = (string) (int) $dia[2];
  6.         $dias = array("dom", "lun", "mar", "mi&eacute;r", "jue", "vie", "s&aacute;b");
  7.         $tomadia = $dias[intval((date("w", mktime(0, 0, 0, $month, $day, $year))))];
  8.         $meses = array("", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre");
  9.         return $tomadia . ", " . $day . " de " . $meses[$month] . " de " . $year;
  10.     }

arreglala como te parezca mejor
  #4 (permalink)  
Antiguo 10/06/2011, 10:45
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Hola gracias por responder y tan rápidamente :D

mira he probado como me has dicho:

$sql_fecha="select fecha from reserva;";
$result=mysql_query($sql_fecha) or die ("nada de nada");

while ($registro = mysql_fetch_array($result))
{
//$dateconv2 = implode( '-', array_no_reverse( explode( '/', $registro['fecha'] ) ) ) ;

$cad = explode('/', $registro['fecha']);
echo $cad[2].":".$cad[1].":".$cad[0]; // DD:MM:AAAA
}

y da los siguientes errores: Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-25
Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-21
  #5 (permalink)  
Antiguo 10/06/2011, 10:46
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Obtener fecha en formato español DD:MM:AAAA

prueba como te dije arriba

$cad = explode('/', "(AAAA/MM/DD");

echo $cad[2].":".$cad[1].":".$cad[0]; // DD:MM:AAAA
  #6 (permalink)  
Antiguo 10/06/2011, 10:48
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

y si con la función que te di haces esto?

Código PHP:
Ver original
  1. <?php echo fechaesp($registro);?>
  #7 (permalink)  
Antiguo 10/06/2011, 10:51
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Voy a probarla, de momento con lo que me ha pasado el compañero anterior no funciona :S
  #8 (permalink)  
Antiguo 10/06/2011, 10:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Obtener fecha en formato español DD:MM:AAAA

$sql_fecha="select fecha from reserva;";
$result=mysql_query($sql_fecha) or die ("nada de nada");

while ($registro = mysql_fetch_array($result))
{
$dateconv2 = implode( '-', array_reverse( explode( '/', $registro['fecha'] ) ) ) ;

$cad = explode('/', $registro['fecha']);
echo $cad[2].":".$cad[1].":".$cad[0]; // DD:MM:AAAA
echo "<br>";
}

estás seguro que esto no funciona ?
  #9 (permalink)  
Antiguo 10/06/2011, 10:55
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

memoadian tu función muestra eso :S

Warning: explode() expects parameter 2 to be string, array given in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 44
mar, 0 de de
Fatal error: Cannot redeclare fechaesp() (previously declared in C:\xampp\htdocs\grr\proyecto\lista_propia.php:42) in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 42
  #10 (permalink)  
Antiguo 10/06/2011, 10:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

pues por que no has declarado la funcion que te puse

¿que esperabas?

aparte el parametro que debes pasar no es un resultado explotado, si no el registro recien sacadito de la BD.
  #11 (permalink)  
Antiguo 10/06/2011, 10:58
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Hola de nuevo iviamontes, nada sigue mostrando lo mismo... Error

Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-25

Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-21

Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-21

Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20

Notice: Undefined offset: 1 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
//2011-05-21

Notice: Undefined offset: 2 in C:\xampp\htdocs\grr\proyecto\lista_propia.php on line 20
  #12 (permalink)  
Antiguo 10/06/2011, 10:59
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

creo que debes pasar por la wiki del foro :)
  #13 (permalink)  
Antiguo 10/06/2011, 11:01
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Buff mira si lo pongo de ésta manera no funciona?
<?
$sql_fecha="select fecha from reserva;";
$result=mysql_query($sql_fecha) or die ("nada de nada");

while ($registro = mysql_fetch_array($result))
{

$date=$registro['fecha'];



function fechaesp($date)
{
$dia = explode("-", $date, 3);
$year = $dia[0];
$month = (string) (int) $dia[1];
$day = (string) (int) $dia[2];
$dias = array("dom", "lun", "mar", "mi&eacute;r", "jue", "vie", "s&aacute;b");
$tomadia = $dias[intval((date("w", mktime(0, 0, 0, $month, $day, $year))))];
$meses = array("", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre");
return $tomadia . ", " . $day . " de " . $meses[$month] . " de " . $year;
}

echo fechaesp($registro);
}
?>
  #14 (permalink)  
Antiguo 10/06/2011, 11:02
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Obtener fecha en formato español DD:MM:AAAA

me rindo, busca sobre explode()
tu solucion está allí.. 2 lineas de codigo.
  #15 (permalink)  
Antiguo 10/06/2011, 11:05
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

a ver

Código PHP:
Ver original
  1. <?php
  2. $sql_fecha = "select fecha from reserva;";
  3. $result = mysql_query($sql_fecha) or die("nada de nada");
  4.  
  5. function fechaesp($date) {
  6.     $dia = explode("-", $date, 3);
  7.     $year = $dia[0];
  8.     $month = (string) (int) $dia[1];
  9.     $day = (string) (int) $dia[2];
  10.     $dias = array("dom", "lun", "mar", "mi&eacute;r", "jue", "vie", "s&aacute;b");
  11.     $tomadia = $dias[intval((date("w", mktime(0, 0, 0, $month, $day, $year))))];
  12.     $meses = array("", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre");
  13.     return $tomadia . ", " . $day . " de " . $meses[$month] . " de " . $year;
  14. }
  15.  
  16. while ($registro = mysql_fetch_array($result)) {
  17.     $date = $registro['fecha'];
  18.     echo fechaesp($date);
  19. }
  20. ?>
  #16 (permalink)  
Antiguo 10/06/2011, 11:11
 
Fecha de Ingreso: mayo-2011
Ubicación: Jaén - [Andalucía]
Mensajes: 17
Antigüedad: 13 años
Puntos: 1
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Compañero muchas gracias eres un dios de las fechas!! me tomaré esta noche unas cuantas cervezas a tu salud!! gracias de nuevo!! :D
  #17 (permalink)  
Antiguo 10/06/2011, 11:14
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Se dice Dios del tiempo - Kronos

jaja y espero que analices tus errores, como poner una función dentro de un while :D
  #18 (permalink)  
Antiguo 10/06/2011, 12:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Obtener fecha en formato español DD:MM:AAAA

sinceramente estaba mas eficiente la idea de iviamontes, el problema era el error de parentesis que tenía

$cad = explode('/', "(AAAA/MM/DD");

y que ogata99 especificó mal el formato de la fecha (AAA/MM/DD), en la base de datos mysql la fecha se guarda como AAAA-MM-DD, por suerte memoadian sabía eso y puso el explode con "-" XD

$dia = explode("-", $date, 3);
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #19 (permalink)  
Antiguo 10/06/2011, 12:24
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

pero es que yo entendi que queria la fecha en español jojo. y eso es lo que devuelve algo asi como

dom 21 marzo 2010
  #20 (permalink)  
Antiguo 10/06/2011, 12:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Es más sencillo trabajar con las funciones de PHP de date/time usa strftime. Algo como
Código PHP:
Ver original
  1. <?php
  2. setlocale(LC_TIME, 'spanish');
  3. $dt = '2011-06-11';
  4. echo strftime('%A %d de %B de %Y', strtotime($dt));
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #21 (permalink)  
Antiguo 10/06/2011, 12:42
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Obtener fecha en formato español DD:MM:AAAA

gracias abimael , no las conocia :)
  #22 (permalink)  
Antiguo 10/06/2011, 15:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Obtener fecha en formato español DD:MM:AAAA

aunque creo que con la respuestas ya lo resolviste creo que fuera sido mas sencillo trayendolo directamente en el formato que quieres desde mysql por ejemplo
Código PHP:
Ver original
  1. $sql_fecha="SELECT DATE_FORMAT(fecha,'%d:%m:%Y') FROM reserva;";
y eso te trae el resultado del campo en el formato Dia:mes:Año y no tienes que ejecutar una funcion extra con PHP, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #23 (permalink)  
Antiguo 10/06/2011, 15:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Obtener fecha en formato español DD:MM:AAAA

Fijate me concentré en la parte que decía español, que no me fijé que decía el formato dd:mm:yyyy, la recomendación de carlos es la que yo implementaría, si es que quiero mostrar los números así.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #24 (permalink)  
Antiguo 10/06/2011, 16:03
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Obtener fecha en formato español DD:MM:AAAA

uff se me fue un paréntesis, sorry...
me quedo con lo de traerla directamente formateado desde la bd

Etiquetas: español, fecha, formato
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 06:30.