Frage

Der Versuch, mit PHP aktuelle Uhrzeit angezeigt werden (unter Verwendung von dieses ) :

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

So einfach wie es nur geht. Wie kann ich sie lokalisieren? Ich möchte die Monate und Tage auf Hebräisch übersetzen.

Danke.

War es hilfreich?

Lösung

Zend_Date ist vollständig internationalisiert. Sie sollten überprüfen, dass für einen einfachen Ausweg, es zu tun:

  

Alle vollen und abgekürzten Namen   Monate und Wochentage werden unterstützt für   mehr als 130 Sprachen. Methods   unterstützt sowohl Eingang und den Ausgang des   unter Verwendung von Daten, um die lokalisierten Namen   Monate und Wochentage, in der   konventionelles Format zugeordnet sind   jede locale.

Andere Tipps

Tatsächlich, ich glaube nicht, es durchaus möglich ist, in PHP 5.2: - (

Zumindest nicht mit dem, was mit / in PHP gebündelt ist (Es gibt Bibliotheken in PHP codiert, die Sie verwenden können, obwohl, wie andere Antworten darauf hingewiesen)


Mit PHP 5.3, obwohl, haben Sie die IntlDateFormatter Klasse, das ist genau das tut, was Sie wollen:

  

Diese Klasse stellt das ICU Datum   Formatierungsfunktionen. Es erlaubt   Benutzer Daten in einer lokalisierten anzuzeigen   formatieren oder zu analysieren Strings in PHP   Datumswerte Muster Strings   und / oder in Dosen Muster.

Zum Beispiel dieser Klasse verwendet wird, wie folgt aus:

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

Sie würden erhalten:

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

Welche ganz schön aussieht, nicht wahr?

Traurige ist PHP 5.3 ist nur ein paar Monate alt, und nicht auf vielen Hosting-Services ... Und wird getestet werden müssen (und wahrscheinlich fixiert) für Ihre Anwendung ...


Denken Sie daran: Vielleicht können Sie die PECL intl Erweiterung auf PHP 5.2, obwohl installieren und erhalten die gleiche functionnality ...

Wenn Sie eine einfache Art und Weise als Zend_Date und IntlDateFormatter versuchen, den Standard strftime Funktion in PHP. Hier ist das, was ich tat, um es nach oben und mit der russischen Sprache mit PHP 5.3 auf Ubuntu (Russian locale wurde nicht installiert ist).

locale installieren

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

Als nächstes verwenden Sie den folgenden PHP-Code-Schnipsel:

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

Sollte Ausgang heutigen Tag der Woche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top