(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::setTimezone -- date_timezone_set — Establece la zona horaria para el objeto DateTime
Estilo orientado a objetos
Estilo por procedimientos
Establece una nueva zona horaria para un object de DateTime.
Igual que DateTimeImmutable::setTimezone() pero funciona con DateTime.
La versión procedural toma el objeto DateTime como su primer argumento.
object
Solamente para el estilo por procedimientos: Un objeto DateTime devuelto por date_create(). La función modifica este objeto.
timezone
Un objeto DateTimeZone que representa la zona horaria deseada.
Devuelve el objeto DateTime para encadenar métodos. El punto en el tiempo subyacente no cambia al llamar a este método.
Ejemplo #1 Ejemplo de DateTime::setTimeZone()
Estilo orientado a objetos
<?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";
?>
Estilo por procedimientos
<?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";
?>
El resultado de los ejemplos sería:
2000-01-01 00:00:00+12:00 2000-01-01 01:45:00+13:45