In my setup setTimezone() does modify the date, as well as the TZ.
Code:
<?php
$dt_obj = new DateTime('2009-06-25 12:00:00');
echo $dt_obj->format(DATE_RFC822) . "\n";
$dt_obj->setTimezone(new DateTimeZone('GMT'));
echo $dt_obj->format(DATE_RFC822);
?>
Output:
Thu, 25 Jun 09 12:00:00 -0400
Thu, 25 Jun 09 16:00:00 +0000
DateTime::setTimezone
(PHP 5 >= 5.2.0)
DateTime::setTimezone — Sets the time zone for the DateTime object
Beschreibung
Parameter-Liste
- object
-
Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTime Objekt.
- timezone
-
Desired time zone.
Rückgabewerte
Returns the modified DateTime.
Beispiele
Beispiel #1 Setting and getting DateTimeZone objects
<?php
date_default_timezone_set('Europe/London');
$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->getTimezone()->getName() . "\n";
$datetime = new DateTime('2008-08-03 12:35:23');
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->getTimezone()->getName();
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Europe/London America/Los_Angeles
Siehe auch
- DateTime::getTimezone() - Return time zone relative to given DateTime
- timezone_open() - Gibt ein neues DateTimeZone-Objekt zurück
DateTime::setTimezone
dan dot morin at gmail dot com
25-Jun-2009 07:56
25-Jun-2009 07:56
sht dot alien at gmx dot net
16-Jun-2009 04:13
16-Jun-2009 04:13
Btw: setTimezone() does NOT modify the date, just the TZ. I tested this just to make sure 'cause the documentation doesn't tell.
