
Se a sua aplicação PHP não estiver com o timezone configurado corretamente as funções que utilizam horário (como date()
e a classe DateTime
) podem exibir valores incorretos.
Para seta o timezone de sua região corretamente existem 2 maneiras:
Arquivo php.ini
Ajuste diretamente no arquivo de configurações do php do servidor. Para isto, localize o arquivo php.ini
da sua aplicação php, normalmente encontrado em /etc/php/php.ini
ou dependendo, em uma pasta com a versão específica do php /etc/php/7.2/php.ini
.
Após abrir o arquivo, localize a string abaixo e altere conforme sua necessidade:
# altere de
;date.timezone =
# para
date.timezone = America/Sao_Paulo
Alterar diretamente na sua aplicação
Em alguns casos, como em hospedagens compartilhadas e algumas revendas, não temos acesso ao arquivo de configurações php.ini
.
Para solucionar este problema, podemos usar uma função nativa do PHP para informar no novo timezone que o script deve considerar. A função se chama date_default_timezone_set
.
<?php
echo date('H:i:s'); // irá printar algo como '19:00:00'
date_default_timezone_set('America/Sao_Paulo');
echo date('H:i:s'); // irá printar '16:00:00'
Documentação: https://www.php.net/manual/pt_BR/function.date-default-timezone-set.php
Comentários