DateTime::setTimestamp
DateTime::sub
DateTime
PHP Manual

# DateTime::setTimezone

# date_timezone_set

Sets the time zone for the DateTime object

### Description

Object oriented style

public DateTime DateTime::setTimezone ( DateTimeZone `$timezone` )

Procedural style

DateTime date_timezone_set ( DateTime `$object` , DateTimeZone `$timezone` )

### Parameters

`object`

  Procedural style only: A DateTime object returned by date_create. The function modifies this object.

`timezone`

  A DateTimeZone object representing the desired time zone.

### Return Values

Returns the DateTime object for method chaining or `FALSE` on failure.

### Changelog

Version | Description
--- | ---
5.3.0 | Changed the return value on success from `NULL` to DateTime.

### Examples

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";
?>`

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 examples will output:

    2000-01-01 00:00:00+12:00
    2000-01-01 01:45:00+13:45

### See Also

- DateTime::getTimezone
- DateTimeZone::__construct