Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

fecha con nombre de dia y meses en español

Estas en el tema de fecha con nombre de dia y meses en español en el foro de Mysql en Foros del Web. Hola amigos, por casualidad me encontré en el foro un usuario que buscaba algo parecido a lo que estoy necesitando. les cuento, estoy aprendiendo todo ...
  #1 (permalink)  
Antiguo 17/01/2012, 15:50
 
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años, 8 meses
Puntos: 1
fecha con nombre de dia y meses en español

Hola amigos, por casualidad me encontré en el foro un usuario que buscaba algo parecido a lo que estoy necesitando.

les cuento, estoy aprendiendo todo esto de las fechas ya que las encuentro un poco enredadas, he leido la ayuda de mysql, etc.. pero por mas que busco hacer algo no me funciona. les pido su ayuda.

en el select hago la consulta. sería:

Código:
SELECT DATE_FORMAT(creado, '%W %d %M %Y') FROM articulos
para mostrar se supone que es:

Código PHP:
<?php 

while ($row mysql_fetch_row($result)){

echo 
$row[0]

}

?>
Quité todo lo que no servía para el ejemplo...

Bueno amigos, el resultado es Tuesday 17 January 2012 y me gustaría que sea asi Martes, 17 Enero 2012.

¿Como debería hacerlo?? alguien tiene un ejemplo que me pueda compartir??

desde ya gracias por la ayuda.
  #2 (permalink)  
Antiguo 17/01/2012, 16:27
 
Fecha de Ingreso: enero-2011
Ubicación: Argentina
Mensajes: 80
Antigüedad: 13 años, 10 meses
Puntos: 12
Respuesta: fecha con nombre de dia y meses en español

Bueno yo guardo siempre en la base de datos las fechas con la función time();

Luego cuando busco la información desde la base agrego su fecha de publicación en los post de esta manera.

Código PHP:
Ver original
  1. function reg_date($dt) {
  2.     // Fecha con día y mes en Español
  3.     $day = array("Domingo,", "Lunes,", "Martes,", "Miércoles,", "Jueves,", "Viernes," ,"Sábado,");
  4.     $month = array("","Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
  5.     date_default_timezone_set("America/Buenos_Aires");
  6.     $fecha_reg = $day[date('w', $dt)].date(" d", $dt)." de ".$month[date('n', $dt)]." de ".date("Y", $dt)." a las ".date("G:i", $dt)." hrs.";
  7.     return $fecha_reg;
  8. }
  9.  
  10. echo "Publicado el ".reg_date(time());

Quizás se pueda realizar de mejor forma.

Sería genial que tú lo analices un poco.

time, date, date_default_timezone_set y array

Bueno espero haberte sido de ayuda.

Saludos
  #3 (permalink)  
Antiguo 18/01/2012, 10:14
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: fecha con nombre de dia y meses en español

Hola juancenter:

La solución que da MaxDgy es válida sólo para PHP, pero podrías hacer lo mismo desde MySQL para hacerlo válido para cualquier lenguaje de programación.

Para obtener el nombre del día en español, podrás hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT fecha,
  2.     -> CASE DAYOFWEEK(fecha)
  3.     -> WHEN 1 THEN 'Domingo'
  4.     -> WHEN 2 THEN 'Lunes'
  5.     -> WHEN 3 THEN 'Martes'
  6.     -> WHEN 4 THEN 'Miércoles'
  7.     -> WHEN 5 THEN 'Jueves'
  8.     -> WHEN 6 THEN 'Viernes'
  9.     -> WHEN 7 THEN 'Sábado'
  10.     -> END nombre_dia
  11.     -> FROM tabla;
  12. +------------+------------+
  13. | fecha      | nombre_dia |
  14. +------------+------------+
  15. | 2012-01-01 | Domingo    |
  16. | 2012-01-02 | Lunes      |
  17. | 2012-01-03 | Martes     |
  18. | 2012-01-04 | Miércoles  |
  19. | 2012-01-05 | Jueves     |
  20. | 2012-01-06 | Viernes    |
  21. | 2012-01-07 | Sábado     |
  22. +------------+------------+
  23. 7 rows in set (0.00 sec)

Algo similar podrías hacer para los meses:

Código MySQL:
Ver original
  1. mysql> SELECT fecha,
  2.     -> CASE MONTH(fecha)
  3.     -> WHEN 1 THEN 'Enero'
  4.     -> WHEN 2 THEN 'Febrero'
  5.     -> WHEN 3 THEN 'Marzo'
  6.     -> WHEN 4 THEN 'Abril'
  7.     -> WHEN 5 THEN 'Mayo'
  8.     -> WHEN 6 THEN 'Junio'
  9.     -> WHEN 7 THEN 'Julio'
  10.     -> WHEN 8 THEN 'Agosto'
  11.     -> WHEN 9 THEN 'Septiembre'
  12.     -> WHEN 10 THEN 'Octubre'
  13.     -> WHEN 11 THEN 'Noviembre'
  14.     -> WHEN 12 THEN 'Diciembre'
  15.     -> END nombre_mes
  16.     -> FROM tabla;
  17. +------------+------------+
  18. | fecha      | nombre_mes |
  19. +------------+------------+
  20. | 2012-01-01 | Enero      |
  21. | 2012-02-01 | Febrero    |
  22. | 2012-03-01 | Marzo      |
  23. | 2012-04-01 | Abril      |
  24. | 2012-05-01 | Mayo       |
  25. | 2012-06-01 | Junio      |
  26. | 2012-07-01 | Julio      |
  27. | 2012-08-01 | Agosto     |
  28. | 2012-09-01 | Septiembre |
  29. | 2012-10-01 | Octubre    |
  30. | 2012-11-01 | Noviembre  |
  31. | 2012-12-01 | Diciembre  |
  32. +------------+------------+
  33. 12 rows in set (0.00 sec)

Puedes crear una función en MySQL para hacer estas consultas, sería la forma más recomendable, o podrías utilizarla directamente:

Código MySQL:
Ver original
  1. mysql>mysql> SELECT fecha, CONCAT (
  2.     -> CASE DAYOFWEEK(fecha)
  3.     -> WHEN 1 THEN 'Domingo'
  4.     -> WHEN 2 THEN 'Lunes'
  5.     -> WHEN 3 THEN 'Martes'
  6.     -> WHEN 4 THEN 'Miércoles'
  7.     -> WHEN 5 THEN 'Jueves'
  8.     -> WHEN 6 THEN 'Viernes'
  9.     -> WHEN 7 THEN 'Sábado'
  10.     -> END
  11.     -> ,', ', DATE_FORMAT(fecha, '%d'), ' de ',
  12.     -> CASE MONTH(fecha)
  13.     -> WHEN 1 THEN 'Enero'
  14.     -> WHEN 2 THEN 'Febrero'
  15.     -> WHEN 3 THEN 'Marzo'
  16.     -> WHEN 4 THEN 'Abril'
  17.     -> WHEN 5 THEN 'Mayo'
  18.     -> WHEN 6 THEN 'Junio'
  19.     -> WHEN 7 THEN 'Julio'
  20.     -> WHEN 8 THEN 'Agosto'
  21.     -> WHEN 9 THEN 'Septiembre'
  22.     -> WHEN 10 THEN 'Octubre'
  23.     -> WHEN 11 THEN 'Noviembre'
  24.     -> WHEN 12 THEN 'Diciembre'
  25.     -> END, ' de ', DATE_FORMAT(fecha, '%Y')) fecha_completa
  26.     -> FROM tabla;
  27. +------------+----------------------------------+
  28. | fecha      | fecha_completa                   |
  29. +------------+----------------------------------+
  30. | 2012-01-01 | Domingo, 01 de Enero de 2012     |
  31. | 2012-02-01 | Miércoles, 01 de Febrero de 2012 |
  32. | 2012-03-01 | Jueves, 01 de Marzo de 2012      |
  33. | 2012-04-01 | Domingo, 01 de Abril de 2012     |
  34. | 2012-05-01 | Martes, 01 de Mayo de 2012       |
  35. | 2012-06-01 | Viernes, 01 de Junio de 2012     |
  36. | 2012-07-01 | Domingo, 01 de Julio de 2012     |
  37. | 2012-08-01 | Miércoles, 01 de Agosto de 2012  |
  38. | 2012-09-01 | Sábado, 01 de Septiembre de 2012 |
  39. | 2012-10-01 | Lunes, 01 de Octubre de 2012     |
  40. | 2012-11-01 | Jueves, 01 de Noviembre de 2012  |
  41. | 2012-12-01 | Sábado, 01 de Diciembre de 2012  |
  42. +------------+----------------------------------+
  43. 12 rows in set (0.00 sec)

Saludos
Leo.

Etiquetas: dia, español, fecha, meses, nombre, usuarios
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 03:16.