Pergunta

Tentando exibir o tempo atual com PHP (usando este ) :

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

Tão simples quanto ele ganha. Como faço para localizá-lo? Eu quero traduzir os meses e dias para Hebraico.

Graças.

Foi útil?

Solução

Zend_Date é totalmente internacionalizado. Você deve verificar isso para uma maneira simples de fazê-lo:

Todos os nomes completos e abreviados de meses e dias de semana são suportados para mais de 130 idiomas. Métodos apoiar tanto a entrada e a saída de datas usando os nomes localizados de meses e dias de semana, na formato convencional associada com cada localidade.

Outras dicas

Na verdade, eu não acho que isso é bastante possível em PHP 5.2: - (

Pelo menos, não com o que está empacotado com / em PHP (Há bibliotecas codificadas em PHP que você pode usar, porém, como outras respostas apontou)


Com o PHP 5.3, porém, você tem o href="http://php.net/manual/en/class.intldateformatter.php" rel="nofollow noreferrer"> IntlDateFormatter classe , que faz exatamente o que você quer:

Esta classe representa a data UTI formatação funcionalidade. Permite usuários para datas de exibição em uma localizada formato ou para cordas de análise em PHP valores de data usando cadeias padrão e / ou padrões de enlatados.

Por exemplo, usando essa classe, como este:

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";

Você deseja obter:

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

O que parece bastante bom, não é?

O mais triste é PHP 5.3 é apenas alguns meses de idade, e não disponível em muitos serviços de hospedagem ... E vai exigir testes (e provavelmente correções) para a sua aplicação ...


Pensando nisso: talvez você possa instalar o
PECL intl extensão no PHP 5.2, embora, e get o mesmo Funcionalidades de ...

Se você precisar de uma maneira mais simples do que Zend_Date e IntlDateFormatter tente a função strftime padrão em php. Aqui está o material que eu fiz para obtê-lo instalado e funcionando com o idioma russo rodando o PHP 5.3 no Ubuntu (locale russo não foi instalado).

Para instalar o locale

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

Em seguida, use o seguinte trecho de php:

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

saída de hoje Should dia da semana.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top