Fechas en Español en PHP

Fechas en Español en PHP

fecha en espanol en php

¿Cómo conseguir mostrar las fechas en idioma español (nombre del día de la semana y nombre del mes en Español) en PHP?

Dependiendo de la configuración del servidor, si quieres sacar por pantalla una fecha indicando el día de la semana (Lunes, Martes …) o el mes (Enero, Febrero, …) puede ocurrirte algo así:

echo date('l, d M Y');
 
//Formato de salida: Sunday, 8 Sep 2013

Como veis, ni el Sunday ni el Sep son estrictamente en formato español.  ¿Cómo devolverlo en idioma español?

Hay dos formas de hacerlo, dependiendo de la configuración de tu servidor:

1. Mostrar fechas en español en PHP set locate:

Si tu servidor lo soporta, puedes indicar el idioma de localización. En el caso de español:

setlocale(LC_ALL,”es_ES”);

Después, para mostrar la fecha en el formato indicado hay que emplear la función strftime. Ejemplo:

echo strftime("%A %d de %B del %Y");
 
//Salida: domingo 8 de septiembre del 2013

¿Qué hacer si tu servidor no soporta setlocate? Aquí tienes otro método:

2. Mostrar fechas en español en PHP con arrays:

Si tu servidor no soporta setlocate no te quedará otra que emplear métodos más manuales.

Es decir, emplear un array para nombres de días en Español y otro para nombre de meses en español. Accediendo a la posición de dichas listas con el número del día o mes respectivamente obtendremos el valor del array que hemos definido.

Ejemplo:

$dias = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
 
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
echo $dias[date('w')]." ".date('d')." de ".$meses[date('n')-1]. " del ".date('Y') ;
//Salida: domingo 8 de septiembre del 2013

Fuente: lachabela.wordpress.com – fechas en espanol con php y setlocale