(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::setTimezone -- date_timezone_set — Sets the time zone for the DateTime object
Object-oriented style
Procedural style
Sets a new timezone for a DateTime object.
Like DateTimeImmutable::setTimezone() but works with DateTime.
The procedural version takes the DateTime object as its first argument.
objecttimezoneA DateTimeZone object representing the desired time zone.
Returns the DateTime object for method chaining. The underlaying point-in-time is not changed when calling this method.
Example #1 DateTime::setTimeZone() example
Object-oriented style
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";The above example will output:
2000-01-01 00:00:00+12:00 2000-01-01 01:45:00+13:45
Procedural style
<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";The above example will output:
2000-01-01 00:00:00+12:00 2000-01-01 01:45:00+13:45