Foros del Web » Programando para Internet » PHP »

Convertir meses al castellano con DATE_FORMAT y php

Estas en el tema de Convertir meses al castellano con DATE_FORMAT y php en el foro de PHP en Foros del Web. Buenas noches. Estoy intentando traducir una fecha que saco de la base de datos, el mes en concreto, al castellano. Código: $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); $busqueda= ...
  #1 (permalink)  
Antiguo 08/09/2011, 16:50
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Pregunta Convertir meses al castellano con DATE_FORMAT y php

Buenas noches.


Estoy intentando traducir una fecha que saco de la base de datos, el mes en concreto, al castellano.


Código:
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");



$busqueda= @mysql_query("SELECT * , DATE_FORMAT(ultimoacceso,'%e-$meses[%c]-%Y a las %T') as fecha  FROM enlaces ORDER BY $criterio");
	if (!$busqueda) {
		echo ("Error al <b>seleccionar</b> los elementos de la base de datos. Inténtelo más tarde");
		exit();

Lo único que pretendía hacer es crear ese array $meses y que luego con la función DATE_FORMAT de MySQL tomara el mes. Lo que pasa es que pongo $meses[%c] y da fallo porque dice que espera un entero.

¿Se os ocurre alguna solución?

Muchas gracias : )
  #2 (permalink)  
Antiguo 08/09/2011, 16:56
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Convertir meses al castellano con DATE_FORMAT y php

Desde luego, por que no puedes hacer $meses[%c], ya que %c no es un índice válido, en todo caso sería $meses[$c], aunque no aclaras de donde viene c, o exactamente qué querías hacer con esa consulta. Si en la BD tienes guardada la fecha en formato dia-mes-año, lo que deberías hacer es convertir la fecha con las funciones strtotime o bien una vez obtenida la fecha, dividir y buscar el mes, algo así como:

$fecha=explode($busqueda["fecha"]);
$mes=$meses[$fecha[1]];
  #3 (permalink)  
Antiguo 08/09/2011, 17:02
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Convertir meses al castellano con DATE_FORMAT y php

La verdad no entiendo que quieres hacer, pero si quieres imprimir fechas en español usa la función setlocale y strftime:

Código PHP:
Ver original
  1. <?php
  2. setlocale(LC_ALL,"es_ES@euro","es_ES","esp");
  3. $fecha = strftime("%d de %B de %Y", strtotime("2011-01-01"));
  4. echo $fecha;
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 08/09/2011, 17:09
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Respuesta: Convertir meses al castellano con DATE_FORMAT y php

Muchas gracias a ambos. Yo lo estaba haciendo con la función DATE_FORMAT de mysql (de ahí venia el %c). Esto está mejor y puedo manejarlo con más fluidez por la parte del código que quiera.


Mil gracias : )
  #5 (permalink)  
Antiguo 08/09/2011, 17:19
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Convertir meses al castellano con DATE_FORMAT y php

También podrías traer el mes en inglés con %M y reemplazarlo con otro array con str_replace. Bueno es otra idea. Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: castellano, meses, 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




La zona horaria es GMT -6. Ahora son las 10:26.