Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 17. Aug 2008, 23:29
Hallo,

ich möchte abhängig von einer gewählten Zeitzone die Zeitangaben einer Website anpassen. Versucht habe ich es so:

Code:
function get_time_str($timestamp, $format, $user_timezone_offset)
{
   $gm_time = gmmktime();   // greenwich mean time (GMT)
   $server_time = time();

   $server_time_offset = $server_time - $gm_time;
   
   return date($format, $timestamp + $user_timezone_offset - $server_time_offset);
}
Hinter dem Code steckt folgende Überlegung:
Zuerst wird mit gmmktime der aktuelle Timestamp in der Greenwich-Zeitzone (GMT) ermittelt. Anschließend ermittle ich mit time den Timestamp mit der Zeitzone, die der Server eingestellt hat. Aus der Differenz erhalte ich nun die am Server eingestellte Zeitzone (als Sekunden-Offset bezogen auf die GMT).
Vom zu formatierenden Timestamp ziehe ich nun den Offset des Servers ab und addiere den Offset des Benutzers.

Ist mein Vorgehen denn richtig?
Mein Problem ist nämlich, dass bei meinem Hoster $gm_time und $server_time identisch sind. Somit erhalte ich bei gewähltem Offset 3600 (GMT+1) eine Zeitangabe, die um 1 Stunde zu hoch ist.

Ich möchte nicht in der php.ini oder ähnlichem Dinge anpassen müssen, sondern ausschließlich Standard-PHP-Funktionen verwenden.

Grüße, Matze
  Mit Zitat antworten Zitat