PHP şimdiki zaman lokalize

4 Cevap php

PHP ile geçerli saati görüntülemek için çalışılıyor kullanarak (this):

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

O alır gibi basit. Bunu nasıl yerelleştirilir?? Ben İbranice aylara ve günlere çevirmek istiyorum.

Teşekkürler.

4 Cevap

Aslında, ben :-( PHP 5.2 oldukça mümkün olduğunu sanmıyorum

En azından, değil PHP / ile birlikte ne ile (There are libraries coded in PHP that you could use, though, like other answers pointed out)


With PHP 5.3, though, you have the IntlDateFormatter class, which does exactly what you want :

This class represents the ICU date formatting functionality. It allows users to display dates in a localized format or to parse strings into PHP date values using pattern strings and/or canned patterns.

Örneğin, bu gibi bu sınıfı kullanarak:

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

Olsun istiyorum:

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

Oldukça güzel görünüyor, değil mi?

Üzücü bir şey PHP 5.3 sadece bir kaç aylık olduğunu ve birçok barındırma hizmetleri mevcut değil ... Ve test gerektirir (ve muhtemelen giderir) uygulamanız için ...


Thinking about it : maybe you can install the PECL intl extension on PHP 5.2, though, and get the same functionnality...

Eğer Zend_Date ve IntlDateFormatter php strftime function standardını deneyin daha basit bir yol gerekiyorsa. İşte ben onu almak için yaptım ve Ubuntu Rus dili çalışan php 5.3 ile çalışıyor malzeme (Rusça yerel yüklü değil) bulunuyor.

Yerel yüklemek için

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

Sonra, aşağıdaki php pasajını kullanın:

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

Gerektiği çıkış haftanın bugünün gün.