(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::setTimezone -- date_timezone_set — Define o fuso horário de um objeto DateTime
Estilo orientado a objetos
Estilo procedural
Define um novo fuso horário a um objeto (object) DateTime.
Equivalente a DateTimeImmutable::setTimezone() mas funciona com DateTime.
A versão procedural usa o objeto DateTime como seu primeiro argumento.
object
Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.
timezone
Um objeto DateTimeZone que representa o fuso horário desejado.
Retorna o objeto da classe DateTime para ligação de métodos. O ponto no tempo subjacente não é modificado quando este método é chamado.
Exemplo #1 Exemplo do método 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 procedural
<?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";
?>
Os exemplos acima produzirão:
2000-01-01 00:00:00+12:00 2000-01-01 01:45:00+13:45