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.

icon infoEinfach 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:

  1. Latitude & Longitude des gesuchten Ortes
  2. Timestamp (Aktueller oder einen in der Vergangenheit/Zukunft liegender)
  3. 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&timestamp=TIMESTAMP&key=DEIN_API_KEY


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:

google maps timezone api berlin

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:

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

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

oliver Ich heisse Oli und komme aus dem wuseligen Berlin. Meine Leidenschaft für Webseiten hält seit mehr 10 Jahren an. Dabei ist es egal ob ich kleinere oder größere Projekte umsetze - ich hänge mich in jedes Projekt mit voller Leidenschaft rein und versuche mich dabei immer wieder neu zu entdecken und neue Ideen umzusetzen.

Hinterlasse ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Letzte Aktualisierung am 12.12.2018 / Affiliate Links / Bilder von der Amazon Product Advertising API