UTC-Zeit mit Länderzuordnung

denyo-style

Mitglied
Hallo alle zusammen,

ich habe bereits das Forum durchsucht und gegoogelt, jedoch ohne Erfolg.
Vielleicht könnt Ihr mir weiterhelfen.

Angenommen ich habe eine UTC Zeitangabe.
Gibt es eine Funktion der ich timestamp und land (o. ä.) übergebe und die dann automatisch herausfindet, wie diese Zeitangabe z. B. in Deutschland, Türkei, China,... ist?
Diese Funktion sollte aber auch Sommer- und Winterzeit und Schaltjahre berücksichtigen können.
Kennt jemand von euch so eine vordefinierte Funktion?


gruß

denyo-style
 
ich hatte mir diese Seite vorher bereits angeschaut und jetzt nochmal sehr detailliert.
das einzige, was für mich etwas nützlich aussah, war die setlocale() - Funktion, aber die funktioniert bei mir auch nicht richtig. Ich habe auch hier im Forum nach dieser Funktion recherchiert.
Ich habe folgendes versucht:

Bsp. China
PHP:
<?php
$timestamp = mktime(16, 28);
setlocale(LC_ALL, 'cn_CN');
echo gmdate("G:i:s", $timestamp);
?>
Die Uhrzeit, die ich ausgebe, bleibt auch nachdem ich andere Länderkürzel eingesetzt habe immer dasselbe.

Anschließend hatte ich folgendes gemacht, um den Wert von LC_ALL zu sehen:
PHP:
setlocate(LC_ALL, 'cn_CN');
phpinfo();
Dort steht "en_US". Auch nachdem ich andere Länderkürzel im setlocal-Befehl versucht hatte, hat sich an diesem Wert nichts geändert.

Ich hatte auch die Idee mein Problem wie folgt zu lösen:

Ich lege in der DB eine Tabelle mit den Spalten LAND, ZEITVERSCHIEBUNG_SOMMER und ZEITVERSCHIEBUNG_WINTER an, addiere (oder ggf. davon ziehe ab) den Wert aus der Spalte ZEITVERSCHIEBUNG_SOMMER / -_WINTER zum timestamp dazu. Das Problem ist dann aber, wie erkenne ich die Sommer- und Winterzeit der verschiedenen Lokationen?
 
Da Du mit gmdate() arbeitest wird das wohl der Grund sein, dass Du immer die gleiche Zeit bekommst, egal welche Location Du setzt. Immerhin ist gmdate() fuer die Greenwich-Zeit zustaendig, und daher wird Dir diese Funktion wohl immer GMT geben, und nie GMT+8 oder aehnliches.

Nehme ich jetzt einfach mal so an.
 
Zurück