Wenn Sie Sie die PHP Internationalization Package installieren, können Sie folgendes tun:
IntlTimeZone::createTimeZone('America/New_York')->getDisplayName()
Dies kehrt die CLDR Englisch Standard-Langform standardmäßig die "Eastern Standard Time"
in diesem Fall ist. Sie können die anderen verfügbaren Optionen here finden. Zum Beispiel:
IntlTimeZone::createTimeZone('Europe/Paris')->getDisplayName(true, IntlTimeZone::DISPLAY_LONG, 'fr_FR')
Die oben wird "heure avancée d’Europe centrale"
zurück, die für mitteleuropäische Sommerzeit Französisch ist.
Achten Sie darauf, den ersten Parameter als true
zu übergeben, wenn DST für das fragliche Datum und die fragliche Uhrzeit aktiv ist, oder andernfalls false
. Dies wird durch die folgende Technik dargestellt:
$tz = 'America/New_York';
$dt = new DateTime('2016-01-01 00:00:00', new DateTimeZone($tz));
$dst = $dt->format('I');
$text = IntlTimeZone::createTimeZone($tz)->getDisplayName($dst);
echo($text); // "Eastern Standard Time"
Working PHP Fiddle Here
Bitte beachten Sie, dass diese Strings für die Anzeige an einen Endverbraucher bestimmt sind. Wenn Sie beabsichtigen, sie für bestimmte programmatische Zwecke zu verwenden, z. B. für den Aufruf einer anderen API, sind sie nicht geeignet - selbst wenn die englischen Versionen einiger Zeichenfolgen übereinstimmen. Wenn Sie beispielsweise die Zeitzone an eine Windows- oder .NET-API oder an eine Ruby on Rails-API senden, funktionieren diese Zeichenfolgen nicht.
Zu welchem Zweck? In welcher Sprache? Bitte erläutern. –
Warum ist der Zweck wichtig? Die Sprache ist PHP, daher der Titel, der erste Absatz und das Tag. – Bing
Ich meinte, zeigen Sie dies einem Benutzer? Auf Englisch? Oder übergeben Sie den Wert an eine andere API? –