Método setTimezone de la clase DateTime

El método setTimezone cambia la zona horaria del objeto DateTime. Como parámetro acepta un objeto de la clase DateTimeZone. Retorna el objeto DateTime modificado.

Sintaxis

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

Ejemplo

Establezcamos la zona horaria 'America/New_York' para la fecha actual:

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 de la ejecución del código:

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

Ejemplo

Cambiemos la zona horaria de un 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 de la ejecución del código:

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

Ver también