Also nun verstehe ich gar nichts mehr.
Das hier:
Code:
$utc_time = time() - date('Z') - (date('I') * 3600);
echo date('d.m.Y G:i:s',$utc_time).' (utc von Andy)
';
date_default_timezone_set('Europe/Berlin');
echo date('d.m.Y G:i:s').' (Berlin)
';
date_default_timezone_set('Europe/London');
echo date('d.m.Y G:i:s').' (London)
';
echo date('d.m.Y G:i:s', time()) . ' (time)';
liefert mir
Code:
07.09.2008 15:17:38 (utc von Andy)
07.09.2008 18:17:38 (Berlin)
07.09.2008 17:17:38 (London)
07.09.2008 17:17:38 (time)
In Berlin ist normalerweise GMT+1 und im Sommer GMT+2. Aber Andys Zeit wäre dann ja GMT-1 (oder falls UTC = GMT eben UTC-1).
Edit:
Code:
echo date("d.m.Y G:i:s Z", 0);
liefert
Daher schließe ich daraus, dass irgenwas GMT+1 (= Serverzeitzone) sein muss, sonst stünde da 00:00:00, aber ich weiß auch nicht so genau. Das ist alles irgendwie unlogisch.
Edit 2:
Nun verstehe ich noch weniger. Julius' Vorschlag mit
liefert nun das korrekte Ergebnis. date() bzw time() enthält somit die Serverzeitzone inklusive Sommerzeit.