Signatur
Beschreibung
timezone_location_get() ist die prozedurale Variante der Methode DateTimeZone::getLocation(). Sie akzeptiert ein DateTimeZone-Objekt und liefert ein assoziatives Array mit geografischen Metadaten zur übergebenen Zeitzone, wie sie in der IANA-Zeitzonendatenbank hinterlegt sind.
Das zurückgegebene Array enthält die Schlüssel country_code (ISO-3166-Alpha-2-Ländercode), latitude (Breitengrad als Float), longitude (Längengrad als Float) und comments (optionaler Freitext-Kommentar aus der IANA-Datenbank). Diese Informationen eignen sich z. B. für die automatische Vorauswahl einer Benutzer-Zeitzone auf Basis des Standorts oder zur Anzeige geografischer Informationen in Administrationsoberflächen.
Die Funktion ist bei UTC-Spezialzonen (z. B. UTC, Etc/GMT+5) oder manuellen Offset-Zonen nicht immer definiert und gibt in solchen Fällen false zurück. Prüfe den Rückgabewert daher immer explizit.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $object Pflicht | DateTimeZone | Eine DateTimeZone-Instanz, deren Standortinformationen abgefragt werden sollen. |
Rückgabewert
country_code (string), latitude (float), longitude (float) und comments (string), oder false falls keine Standortinformationen verfügbar sind (z. B. bei UTC-Offset-Zonen).Beispiele
Standortinformationen für eine bekannte Zeitzone ausgeben
<?php
$tz = new DateTimeZone('Europe/Berlin');
$location = timezone_location_get($tz);
if ($location !== false) {
echo 'Land: ' . $location['country_code'] . PHP_EOL;
echo 'Breitengrad: ' . $location['latitude'] . PHP_EOL;
echo 'Längengrad: ' . $location['longitude'] . PHP_EOL;
echo 'Kommentar: ' . $location['comments'] . PHP_EOL;
} else {
echo 'Keine Standortinformationen verfügbar.';
}
Alle Zeitzonen eines Landes mit Koordinaten auflisten
<?php
$zonen = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'US');
foreach ($zonen as $zoneName) {
$tz = new DateTimeZone($zoneName);
$loc = timezone_location_get($tz);
if ($loc !== false) {
printf(
"%-35s Lat: %8.5f Lon: %9.5f\n",
$zoneName,
$loc['latitude'],
$loc['longitude']
);
}
}
// Wichtig · Fallstricke
Achtung bei UTC- und Offset-Zonen: Zeitzonen wie UTC, Etc/GMT, Etc/GMT+5 etc. haben in der IANA-Datenbank keine geografischen Koordinaten. timezone_location_get() gibt für diese Zonen false zurück – prüfe den Rückgabewert daher immer mit === false.
Die Funktion ist funktional identisch mit DateTimeZone::getLocation(). In objektorientiertem Code wird die Methode bevorzugt. Die prozedurale Form ist vor allem für Kontexte nützlich, in denen eine Callback- oder array_map-kompatible callable-Form benötigt wird.