Pregunta

Intentando mostrar la hora actual con PHP (usando this ) :

$date = date('m/d/Y h:i:s a', time());                      
echo $date;

Tan simple como se pone. ¿Cómo lo localizo? Quiero traducir los meses y días al hebreo.

Gracias.

¿Fue útil?

Solución

Zend_Date está completamente internacionalizado. Debería comprobarlo para ver una forma simple de hacerlo:

  

Todos los nombres completos y abreviados de   meses y días laborables son compatibles para   Más de 130 idiomas. Métodos   admite tanto la entrada como la salida de   fechas usando los nombres localizados de   meses y días de semana, en el   formato convencional asociado con   cada localidad.

Otros consejos

En realidad, no creo que sea posible en PHP 5.2 :-(

Al menos, no con lo que se incluye con / en PHP (Sin embargo, hay bibliotecas codificadas en PHP que podría usar, como otras respuestas señalaron)


Sin embargo, con PHP 5.3, tiene la IntlDateFormatter , que hace exactamente lo que quieres:

  

Esta clase representa la fecha de la UCI   Funcionalidad de formateo. Permite   usuarios para mostrar fechas en un localized   formatear o analizar cadenas en PHP   valores de fecha usando cadenas de patrones   y / o patrones enlatados.

Por ejemplo, usando esa clase, así:

echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

Obtendría:

dimanche 9 novembre 2008 23:54:47 GMT+00:00
9 nov. 2008 23:54
2008年11月9日星期日 下午11時54分47秒 GMT+00:00
2008/11/9 下午 11:54
Sunday, November 9, 2008 11:54:47 PM GMT+00:00
Nov 9, 2008 11:54 PM

Que se ve muy bien, ¿no?

Lo triste es que PHP 5.3 tiene solo unos pocos meses y no está disponible en muchos servicios de alojamiento ... Y requerirá pruebas (y probablemente soluciones) para su aplicación ...


Pensando en ello: quizás pueda instalar la extensión PECL intl en PHP 5.2, y obtener la misma funcionalidad ...

Si necesita una forma más simple que Zend_Date e IntlDateFormatter, pruebe la función estándar strftime en php. Esto es lo que hice para ponerlo en funcionamiento con el idioma ruso que ejecuta php 5.3 en Ubuntu (la configuración regional de Rusia no estaba instalada).

Para instalar la configuración regional

  1. cd / usr / share / locales
  2. sudo ./install-language_pack ru_RU
  3. sudo dpkg-reconfigure locales
  4. Reiniciar Apache

A continuación, use el siguiente fragmento de php:

setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());

Debería salir el día de la semana de hoy.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top