Como mostrar nombre del mes en español en PHP
function nombremes($mes){
setlocale(LC_TIME, 'spanish');
$nombre=strftime("%B",mktime(0, 0, 0, $mes, 1, 2000));
return $nombre;
}
El nucleo es la función strftime que utilizamos con 2 parametros: el primero es el formato en que quiero que me devuelva la fecha y el 2do es la fecha en si (en formato TIMESTAMP por eso la armamos con mktime) que sino lo pasamos toma la fecha actual. En este caso pongo el dia en 1 y el año en 2000 ya que no los voy a utilizar.
El setlocale es importante porque selecciona los locales de fecha y hora en «spanish», sino saldrian los nombres de los dias y meses en ingles.
El uso de la función es muy simple. Ej:
$mes=nombremes(8);
echo $mes; //devuelve "agosto"
o algo más simple: echo nombremes(8)
devuelve «agosto».
En la mayoría de las webs, existen ejemplos mucho mas complicados con arrays y otros métodos más largos y complicados. Si en vez del mes quieren el día solo deben cambiar el %B por %A para el día completo y por %a para el día con 3 letras y luego cambiar la ubicación de la variable $mes (y cambiarle el nombre para que quede entendible).
Pueden mejorar la función para que devuelva el mes o el día según el parámetro pasado, se los dejo como ejercicio de práctica…