Aplicações em PHP muitas vezes podem apresentar problemas se não encontrarem a variável timezone
definida no arquivo php.ini
devido ao fato de elas não consultarem o timezone local do servidor.
Vamos então resolver este problema definindo o timezone no arquivo de configuração do PHP, o próprio php.ini
.
Como muitas vezes fica a dúvida a respeito da localização exata do arquivo, para encontrálo basta executar no terminal do servidor o comando:
find / -name php.ini
Em nosso exemplo, como pode ser observado na imagem, temos duas localizações: /etc/php5/cli/php.ini e /etc/php5/apache2/php.ini
Para termos certeza da alteração, vamos editar os dois arquivos, localizando a linha date.timezone
e alterá-la conforme nossa necessidade, em meu caso a linha ficou da seguinte forma:
date.timezone = America/Sao_Paulo
Uma lista dos fusos horários suportados pelo PHP pode ser encontrada na própria Documentação do PHP
Após a edição dos arquivos ser concluída, é necessário reiniciar o servidor Apache2 para que as alterações surtam efeito:
# /etc/init.d/apache2 restart
E finalmente, para conferir se as alterações tiveram efeito, crie um arquivo teste.php com o conteúdo a seguir:
<?php
if (date_default_timezone_get()) {
echo 'date_default_timezone_set: ' . date_default_timezone_get() . "\n";
}
if (ini_get('date.timezone')) {
echo 'date.timezone: ' . ini_get('date.timezone') . "\n";
}
?>
Salve-o e execute com um ‘php teste.php’. Você terá um resultado como este abaixo (conforme o timezone configurado: