Google Maps Api – Timezone in UTC Zeitzonen umrechnen
Mithilfe der Google Maps API kann man die Timezone in UTC Zeitzonen umrechnen. Doch ich hatte am Anfang Probleme zu verstehen, wie ich das mache. Aber nach ein bisschen querlesen im Internet habe ich es verstanden und mir eine PHP Funktion gebaut, die mir automatisch die Timezone (rawOffset) in UTC/GMT umrechnet. Ich möchte Euch in meinem kleinen Tutorial zeigen, wie auch Ihr die Timezone mit PHP umrechnen könnt.
Einfach in die Karte klicken und Euch wird die entsprechende Zeitzone angezeigt
Timezone mit der Google Maps API erhalten und in UTC/GMT umrechnen
Um die Timezone in UTC umwandeln zu können benötigt Ihr vorab erst eimal die folgende Daten:
- Latitude & Longitude des gesuchten Ortes
- Timestamp (Aktueller oder einen in der Vergangenheit/Zukunft liegender)
- Euren persönlichen Google API Key
Aufrufen der Google Maps Timezone API
Wenn Ihr die benötigten Daten habt, dann könnt Ihr diese mit den Platzhaltern im folgenden Link austauschen.
https://maps.googleapis.com/maps/api/timezone/json?location=LAT,LNG×tamp=TIMESTAMP&key=DEIN_API_KEY
Keine Produkte gefunden.
Beispiel
In den folgenden Beispielen möchte ich mit den Daten von Berlin arbeiten, die wie folgt aussehen:
- Lat: 52.5200066
- Lng: 13.404954
- Timestamp: 1458000000
Um sicher zu gehen, dass der Link richtig zusammengebaut ist, gebe ich Meinen Link (API KEY anfügen!) sicherheitshalber in einen neuen Tab ein und erhalte folgendes Resultat:
Solltet Ihr ebenfalls Daten mit den Status OK erhalten, dann können wir mit der Umrechnung in UTC/GMT beginnen.
Wie rechnet man Timezone in UTC/GMT mit der Google Maps Api um?
Um eine eigen PHP Funktion schreiben zu können musste ich erst einmal verstehen, was mir die Google Maps Timezone API bietet. In meinem Beispiel erhalte ich folgende Daten
„dstOffset“ : 0,
„rawOffset“ : 3600,
„status“ : „OK“,
„timeZoneId“ : „Europe/Berlin“,
„timeZoneName“ : „Central European Standard Time“
dstOffset
Gibt in Sekunden an, ob sich die Zeitzone in der Sommerzeit befindet (3600) oder 0, wenn Sie sich nicht in der Sommerzeit befindet.
rawOffset
Dies gibt die UTC (in Sekunden) für die angegebene Position an, unabhängig von der Sommerzeit.
Status
Selbsterklärend!
timeZoneId
Gibt den Namen der Zeitzone wieder
timeZoneName
Enthält den Langnamen der Zeitzone
Formel zur Berechnung der UTC Zeitzonen
Nun möchte ich zu ein paar Beispielen kommen, anhand derer ich zeigen möchte, wie man den Timezone in UTC umrechnen kann:
Keine Produkte gefunden.
Formel: UTC = ( rawOffset / 3600 ) + ( dstOffset / 3600 )
Beispiel 1 – Berlin
„dstOffset“ : 0,
„rawOffset“ : 3600,
Rechnung: ( 3600 / 3600 ) + ( 0 / 3600 ) = UTC/GMT +1 Stunde
Beispiel 2 – New York (Sommerzeit)
„dstOffset“ : 3600,
„rawOffset“ : -18000,
Rechnung: ( -18000 / 3600 ) + ( 3600 / 3600 ) = UTC/GMT -4 Stunde
Beispiel 3 – New York (Winterzeit)
„dstOffset“ : 0,
„rawOffset“ : -18000,
Rechnung: ( -18000 / 3600 ) + ( 0 / 3600 ) = UTC/GMT -5 Stunde
Beispiel 4 – Australien
„dstOffset“ : 3600,
„rawOffset“ : 34200,
Rechnung: ( 34200 / 3600 ) + ( 3600 / 3600 ) = UTC/GMT +10.5 Stunde
Hier tritt eine Besonderheit auf, denn es gibt manchmal den Fall, dass das Ergebnis eine Nachkommastelle auswirft. Diese muss einfach mit 60 multipliziert werden und schon erhält man die Minuten.
Rechnung: 0.5 * 60 = 30 Minuten
Demnach wäre das Ergebnis von Beispiel 4: +10.30 Stunde
Keine Produkte gefunden.
PHP Funktion – Umrechnen der Timezone in UTC/GMT
Nun kommen wir aber endlich zur Funktion, die automatisch die Timezone in UTC umrechnet.
Zunächst einmal rufe ich die Funktion im Template auf
utcTimezone($rawOffset, $dstOffset, $timeZoneId, $status );
Anschließend rechne ich die Werte in der Funktion aus und gebe die UTC/GMT Zeitzone automatisch zurück.
unction utcTimezone( $rawOffset, $dstOffset, $timeZoneId, $status ) {
if ( $status == 'OK' ) {
$dstOffset = $dstOffset / 3600;
$rawOffset = ( $rawOffset / 3600 );
$rawOffset = explode('.', $rawOffset);
if ( $rawOffset[1] ) {
$rawOffsetMin = '.' . $rawOffset[1] * 6;
}
$offset = $rawOffset[0] + $dstOffset;
if ( $offset >= 0 ) {
$plus = '+';
}
if ( $timeZoneId ) {
$timeZoneName = ' (' . $timeZoneId . ')';
}
$return = 'UTC/GMT ' . $plus . $offset . $rawOffsetMin . 'h' . $timeZoneName;
} else {
$return = 'Fehler';
}
return $return;
}
Hinterlasse doch ein Kommentar
Schreibe ein Kommentar zu Google Maps Api – Timezone in UTC Zeitzonen umrechnen
Wenn dir der Beitrag Google Maps Api – Timezone in UTC Zeitzonen umrechnen gefallen hat oder du Kritik bzw. Verbesserungsvorschläge hast, dann würde ich mich freuen, wenn Du ein Kommentar hinterlassen würdest.