Foros del Web » Programando para Internet » PHP »

Dar formato a fecha en español

Estas en el tema de Dar formato a fecha en español en el foro de PHP en Foros del Web. estoy trayendo una fecha desde mysql para lo que utilizo una consulta de esta forma @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $consulta_seminario = "SELECT * ...
  #1 (permalink)  
Antiguo 06/07/2011, 10:54
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 5 meses
Puntos: 20
Dar formato a fecha en español

estoy trayendo una fecha desde mysql para lo que utilizo una consulta de esta forma

Código PHP:
Ver original
  1. $consulta_seminario = "SELECT * FROM app_seminarios WHERE id_seminario = '$seminario'";
  2.     $run_seminario = mysql_query($consulta_seminario) or die (mysql_error());
  3.  
  4.  
  5.  
  6.     while ($rowdatossem= mysql_fetch_row ($run_seminario)) {
  7.         $seminasist= $rowdatossem[1];  
  8.         $fecha = $rowdatossem[2];

La consulta funciona bien y me trae los datos correctamente, lo que necesito es poder publicar la fecha con formato 21 de Octubre de 2011 asi en español, para lograrlo estoy utilizando

Código PHP:
Ver original
  1. setlocale(LC_TIME, 'sp_ES','sp', 'es');
  2. $fecha2=strftime('%d de %B de %Y', strtotime($fecha));

pero el resultado que me da es 21 de October de 2010 es lomas cercano que he encontrado pero lo necesito en español

alguna idea?
__________________
Say no more.......
  #2 (permalink)  
Antiguo 06/07/2011, 10:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 6 meses
Puntos: 2534
Respuesta: Dar formato a fecha en español

Creo que el código de fecha debe ser es_ES, y no sp_ES.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/07/2011, 11:09
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 5 meses
Puntos: 20
Respuesta: Dar formato a fecha en español

mmm no,lo acabo de cambiar y sigue igual
__________________
Say no more.......
  #4 (permalink)  
Antiguo 06/07/2011, 11:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 6 meses
Puntos: 2534
Respuesta: Dar formato a fecha en español

Entonces tu sistema no esta configurado para ello, deberías revisar el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/07/2011, 11:25
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 5 meses
Puntos: 20
Respuesta: Dar formato a fecha en español

Cita:
Iniciado por pateketrueke Ver Mensaje
Entonces tu sistema no esta configurado para ello, deberías revisar el manual.
mi host esta en godaddy, que otra manera podria utilizar entonces?
__________________
Say no more.......
  #6 (permalink)  
Antiguo 06/07/2011, 11:42
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Dar formato a fecha en español

Creo que la solucion mas facil es hacer un str_replace. Lo unico que deberias hacer seria algo del estilo:
Código PHP:
swith($mes){
case (
"january"){
$mes=str_replace($mes,"enero",$mes);
}
y asi con los demas meses...

Es una solucion muy sencilla y yo la utilizo mucho sobretodo porque es corta de diseñar, de esta manera evito estar pendiente si soporta o no el idioma. Igual si alguien sabe una respuesta mas sencilla seria bueno saberla porque así aprendemos todos.
  #7 (permalink)  
Antiguo 06/07/2011, 13:31
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 5 meses
Puntos: 20
Respuesta: Dar formato a fecha en español

Gracias cuasatar me inspiraste para hacer esto

Código PHP:
Ver original
  1. $fecha = $rowdatossem[2];  
  2.         //cambiamos la fecha de mysql a nomral
  3. $fe = explode("-", $fecha);
  4. $ano= $fe[0];
  5. $mes= $fe[1];
  6. $dia= $fe[2];
  7.  
  8. switch ($mes) {
  9.     case "01":
  10.     $mes = "Enero";
  11.     break;
  12.     case "02":
  13.     $mes = "Febrero";
  14.     break;
  15.     case "03":
  16.     $mes = "Marzo";
  17.     break;
  18.     case "04":
  19.     $mes = "Abril";
  20.     break;
  21.     case "05":
  22.     $mes = "Mayo";
  23.     break;
  24.     case "06":
  25.     $mes = "Junio";
  26.     break;
  27.     case "07":
  28.     $mes = "Julio";
  29.     break;
  30.     case "08":
  31.     $mes = "Agosto";
  32.     break;
  33.     case "09":
  34.     $mes = "Septiembre";
  35.     break;
  36.     case "10":
  37.     $mes = "Octubre";
  38.     break;
  39.     case "11":
  40.     $mes = "Noviembre";
  41.     break;
  42.     case "12":
  43.     $mes = "Diciembre";
  44.     break;
  45. }
  46.  
  47. $fecha3 = $dia." de ".$mes." de ".$ano;

Y funciona perfecto


gracias por la ayuda
__________________
Say no more.......
  #8 (permalink)  
Antiguo 06/07/2011, 13:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dar formato a fecha en español

Prueba ejecutar:
Código PHP:
Ver original
  1. system("locale -a");

Esto te dara el listado de los locales que tienes disponibles en tu servidor y podras ver si tienes el de español registrado.
  #9 (permalink)  
Antiguo 06/07/2011, 14:29
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 5 meses
Puntos: 20
Respuesta: Dar formato a fecha en español

se lo pongo y me da esto system() has been disabled for security reasons
__________________
Say no more.......
  #10 (permalink)  
Antiguo 06/07/2011, 15:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Dar formato a fecha en español

Prueba ejecutarlo con exec(), si no te lo permite no hay forma de ver si tu servidor tiene más locales instalados.
  #11 (permalink)  
Antiguo 06/07/2011, 15:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 6 meses
Puntos: 2534
Respuesta: Dar formato a fecha en español

Si tienes acceso SSH a tu servidor puedes ejecutar dicha instrucción directamente desde la linea de comandos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 06/07/2011, 21:38
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Dar formato a fecha en español

Pues me agrada que la solución la implementaras de esa forma. De hecho yo lo hice exactamente igual a como lo hiciste. Lo de str_replace es como un método alternativo que se me ocurrio así sobre la marcha. Igual quedo pendiente de este foro porque la verdad yo tambien quiero averiguar una solución sin necesidad de usar una función adicional. Alguna vez lei algo de set locale para configurarlo pero no he profundizado en la lectura.

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:30.