Método setTimezone da classe DateTime

O método setTimezone altera o fuso horário do objeto DateTime. Ele aceita como parâmetro um objeto da classe DateTimeZone. Retorna o objeto DateTime modificado.

Sintaxe

phppublic DateTime::setTimezone(DateTimeZone $timezone): DateTime

Exemplo

Vamos definir o fuso horário 'America/New_York' para a data atual:

php<?php
  $date = new DateTime('now', new DateTimeZone('UTC'));
  $date->setTimezone(new DateTimeZone('America/New_York'));
  echo $date->format('Y-m-d H:i:s');
?>

Resultado da execução do código:

php'2023-11-15 10:30:00'

Exemplo

Vamos alterar o fuso horário de um objeto DateTime existente:

php<?php
  $date = new DateTime('2023-01-01 12:00:00', new DateTimeZone('Europe/Moscow'));
  $date->setTimezone(new DateTimeZone('Asia/Tokyo'));
  echo $date->format('Y-m-d H:i:s');
?>

Resultado da execução do código:

php'2023-01-01 18:00:00'

Veja também