Classe DateTimeZone
A classe DateTimeZone permite trabalhar com fusos horários em PHP.
Aceita em seu construtor uma string com o identificador do fuso horário.
Sintaxe
new DateTimeZone(string $timezone);
Exemplo
Vamos criar um objeto de fuso horário para Moscou:
<?php
$timezone = new DateTimeZone('Europe/Moscow');
print_r($timezone);
?>
Resultado da execução do código:
DateTimeZone Object
(
'timezone_type' => 3
'timezone' => Europe/Moscow
)
Exemplo
Uso com a classe DateTime:
<?php
$timezone = new DateTimeZone('America/New_York');
$date = new DateTime('now', $timezone);
echo $date->format('Y-m-d H:i:s');
?>
Resultado da execução do código (horário atual em Nova York):
'2025-06-15 14:30:00'
Exemplo
Obtendo a lista de todos os fusos horários disponíveis:
<?php
$timezones = DateTimeZone::listIdentifiers();
print_r(array_slice($timezones, 0, 5));
?>
Resultado da execução do código:
[
'Africa/Abidjan'
'Africa/Accra'
'Africa/Addis_Ababa'
'Africa/Algiers'
'Africa/Asmara'
]
Exemplo
Obtendo o deslocamento do fuso horário em relação ao UTC:
<?php
$timezone = new DateTimeZone('Asia/Tokyo');
echo $timezone->getOffset($date) / 3600;
?>
Resultado da execução do código:
9
Veja também
-
classe
DateTime,
para trabalhar com data e hora -
classe
DateInterval,
que define um intervalo de tempo -
função
date_default_timezone_set,
para definir o fuso horário padrão