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
Description
Parameters
- object
-
Procedural style only: A DateTime object returned by date_create()
- timezone
-
Desired time zone.
Return Values
Returns the modified DateTime.
Examples
Example #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();
?>
The above example will output:
Europe/London America/Los_Angeles
See Also
- DateTime::getTimezone() - Return time zone relative to given DateTime
- timezone_open() - Returns new DateTimeZone object
DateTime::setTimezone
dan dot morin at gmail dot com
25-Jun-2009 05:56
25-Jun-2009 05:56
sht dot alien at gmx dot net
16-Jun-2009 02:13
16-Jun-2009 02:13
Btw: setTimezone() does NOT modify the date, just the TZ. I tested this just to make sure 'cause the documentation doesn't tell.
