Aprenda a configurar o timezone no PHP e evitar problemas com datas

Saiba como configurar o timezone no PHP para garantir que as funções de data e hora sejam exibidas corretamente.

Como definir um timezone no PHP

O timezone (fuso horário) define como o PHP interpreta datas e horários. Caso não esteja configurado corretamente, funções que lidam com tempo podem retornar valores errados, especialmente quando um código é executado em servidores com fusos diferentes.

Configurando o timezone no php.ini

A maneira mais recomendada de definir um timezone padrão para sua aplicação é configurando o php.ini. Para isso, localize e edite este arquivo:

No Linux/macOS:

sudo nano /etc/php/{versao}/apache2/php.ini

No Windows (XAMPP):

C:\xampp\php\php.ini

Encontre a linha que contém date.timezone e modifique-a conforme sua localização. Por exemplo, para definir o fuso do Brasil:

date.timezone = "America/Sao_Paulo"

Após a alteração, reinicie o servidor:

sudo systemctl restart apache2  # Para Apache
sudo systemctl restart php-fpm  # Para Nginx com PHP-FPM

Definindo o timezone no código PHP

Caso não tenha acesso ao php.ini ou precise definir o timezone dinamicamente, use o comando date_default_timezone_set() no início do código:

<?php
date_default_timezone_set("America/Sao_Paulo");
echo "Data e hora atual: " . date("d/m/Y H:i:s");
?>

Isso garantirá que todas as funções de data e hora usem o fuso correto durante a execução do script.

Obtendo a lista de timezones disponíveis

Para saber quais fusos horários podem ser utilizados, execute:

<?php
print_r(timezone_identifiers_list());
?>

Isso imprimirá uma lista de todas as zonas suportadas pelo PHP.

A configuração do timezone é um detalhe muitas vezes ignorado no desenvolvimento, mas pode causar grandes impactos quando não é ajustada corretamente. Em aplicações web, trabalhar com fusos horários errados pode resultar em problemas em registros de banco de dados, timestamps inconsistentes e até falhas em sistemas de agendamento. Para aplicações globais, o ideal é permitir que usuários escolham seu próprio fuso horário ou utilizar UTC como padrão e converter conforme necessário. Dominar a configuração correta do timezone evita problemas inesperados e melhora a precisão das informações exibidas.

Algumas aplicações:

  • Exibição correta de datas e horários em aplicações web
  • Sincronização de horários em servidores com fusos diferentes
  • Registro correto de logs e eventos em aplicações PHP
  • Geração de relatórios e agendamentos baseados em horário local

Dicas para quem está começando

  • Sempre defina um timezone para evitar problemas de horário.
  • Use date_default_timezone_set() no código caso não tenha acesso ao php.ini.
  • Se a aplicação for global, utilize UTC e converta o horário para o fuso do usuário.
  • Verifique a lista completa de timezones com timezone_identifiers_list().
  • Se seu servidor estiver retornando horários incorretos, cheque a configuração de timezone do PHP.

Contribuições de Rafael Nogueira

Compartilhe este tutorial: Como definir um timezone no PHP

Compartilhe este tutorial

Continue aprendendo:

Como configurar variáveis de ambiente no PHP

Veja como definir e acessar variáveis de ambiente no PHP para armazenar informações sensíveis com segurança.

Tutorial anterior

Como usar tags curtas no PHP

Saiba o que são tags curtas no PHP, como ativá-las e se é recomendável utilizá-las no seu código.

Próximo tutorial