fecha - strftime php español
Fecha de PHP() en idiomas extranjeros, p. Ej., 25 de marzo Aoû 09 (4)
Tengo un script que necesita mostrar datos de fecha a una audiencia internacional, por ejemplo,
"presentado el martes 25 de agosto de 2009"
¿Existe una forma más fácil / limpia de convertir esto al equivalente en francés (etc.) "Mar 25 Aoû 09" que:
Configuración de una constante LANG
y una matriz $LANGUAGES
de archivos de inclusión y:
if(LANG != ''EN'')
{
include $LANGUAGES[''LANG''];
}
¿Y luego el archivo incluido asigna los días y meses y reemplaza a la configuración regional apropiada?
Gracias
David
Creo que es la mejor manera de hacerlo con las funciones strftime
y setlocale
. Pero no funcionará si su servidor no tiene instalada la configuración regional necesaria (en las preguntas actuales es fr_FR
).
El código de abajo lanza una excepción si el cambio de configuración regional no será exitoso
<?php
$result = setlocale(LC_ALL, ''fr_FR'');
if($result === false){
throw new /RuntimeException(
''Got error changing locale, check if locale is installed on the system''
);
}
$dayOfMonth = ''%e'';
//if it is Windows we will use %#d as %e is not supported
if (strtoupper(substr(PHP_OS, 0, 3)) === ''WIN'') {
$dayOfMonth = ''%#d'';
}
//Mar 25 Aoû 09 - month shortname, day of month, day shortname, year last two digits
echo strftime("%b $dayOfMonth %a %y");
Creo que no puedes dejar de hacerlo sin configurar LOCALE:
<?php
setlocale(LC_ALL, ''fr_FR'');
echo strftime("%A %e %B %Y");
?>
Algunos detalles sobre strftime: http://us2.php.net/manual/en/function.strftime.php
También es posible que desee echar un vistazo a Zend_Date .