En PHP disponemos de la función date() para imprimir fechas. Por defecto no aparece en español, cuando mostramos una fecha utilizando la función date() aparece en ingles y con el formato de Unix.
Esta configuración puede ser cambiada en el servidor, fijando el locale por defecto que será utilizado por las distintas funciones de PHP. Si tenemos acceso al php.ini será tan sencillo como editar esta configuración en la variable intl.default_locale. Aunque lo habitual en los hostings compartidos es que no dispongamos acceso al php.ini.
No es raro, que en mucho servidores, la configuración por defecto haga que la fecha se muestre en inglés. Para cambiar esto, y que PHP nos muestre la fecha en español, lo único que tenemos que hacer es cambiar esa variable de configuración en tiempo de ejecución. Lo conseguimos con la siguiente instrucción:
1 |
setlocale(LC_ALL, "ES_ES"); |
Si en lugar de español, queremos utilizar cualquier otro idioma, solo deberemos cambiar el código (ES_ES) por el correspondiente al otro idioma.
Tras indicar el idioma que se usará solo queda imprimir la fecha. Aquí pueden ver el código completo:
1 2 3 4 5 6 |
<?php setlocale(LC_ALL,"es_ES"); echo strftime("%A %d de %B del %Y"); //Salida: jueves 2 de agosto del 2012 ?> |
La función setlocale establece la información de la configuración regional, no solo cambia el idioma de las fechas. El parametro LC_ALL indica a que grupo de funciones se aplica la configuración (Más información aquí).
Con esto ya podríamos imprimir las fechas en español sin realizar ninguna otra modificación. Ahora queda que cada cual las formatee a su gusto.
Hola, gracias por la data. Yo quiero hacer esto en wordpress, traduje el theme, el plugin y el locale.
Pero me sigue mostrando la fecha en ingles en lugar de castellano.
Adonde ubico este código?
Dentro de WordPress..
Muchas gracias!
Hola Nacho! Me alegro que te haya resultado de ayuda.
Habría que ponerlo en cualquier archivo que se ejecute (el functions.php del theme podría ser un buen lugar), teniendo en cuenta que no se modifique después durante la ejecución del código de WordPress. Tendrás que probar un poco.
Un saludo!
Hola Alfredo, al parecer el tema ya tiene un tiempo pero estoy interesado en la solución, mi hosting es compartido en godaddy y es linux, cree un archivo php.ini en el public_html con el código que mencionas arriba, pero no veo un cambio en la fecha, me faltará hacer algo más?