Kris: UTC Zeit konvertieren, Problem mit Sommer-/Winterzeit

Beitrag lesen

Hallo,

Beim Initialisieren der Applikation wird mittels
date_default_timezone_set("UTC")
die Systemzeitzone auf UTC gesetzt.

Sämtliche Datumsangaben werden auch in der DB als UTC hinterlegt.
Nun möchte ich in der Ausgabe anhand eines Config-Parameters das Datum nach zb Europe/Berlin konvertieren.

$df = 'yyyy-MM-dd HH:mm:ss';  
$utc0date = "2012-02-21 18:20:10";  
  
$now = new \Zend_Date($utc0date);  
  
echo $now->getTimezone();  
echo "<br>".$now->toString($df)."<hr>";  
  
$now->setTimezone( "Europe/London" );  
echo "London:<br>".$now->toString($df)."<br>";  
  
$now->setTimezone( "Europe/Berlin" );  
// $now->setOptions(array('fix_dst' => false));  
echo "Berlin:<br>".$now->toString($df)."<br>";  
  
$now->setTimezone( "Asia/Manila" );  
echo "Manila:<br>".$now->toString($df)."<br>";

Die Ausgabe ist wie folgt:

UTC
2012-02-21 18:20:10
London:
2012-02-21 18:20:10
Berlin:
2012-02-21 19:20:10
Manila:
2012-02-22 02:20:10

Wie man sieht wird die Sommerzeit nicht beachtet.
Die Angabe setOption.. greift nicht, da PHP zuvor auf UTC gestellt wurde.

Ich finde einfach keine Lösung ohne irgendwelche Umwege ganz einfach anhand der UTC-Zeit die korrekte Zeit für Deutschland zu berechnen.
Irgendwelche Ideen/Tips*?

Auch wenn ich das Zend-Framework nutze, bin ich auch durchaus an einer reinen PHP-Loesung interessiert.

Vielen Dank,
Kris

* vor der Ausgabe systemweite Angaben wie date_default_timezone() etc zu setzen, und danach wieder zurückzustellen ist für mich keine Lösung.