PHP date.timezone warning

5

Continuo recebendo este erro:

Message: date() [function.date]: It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead

Eu editei meu php.ini e adicionei isso ao final: date.timezone="America / New_York"

Depois de salvar o php.ini e reiniciar o Apache, ainda recebo o erro. Eu também tentei reiniciar o servidor inteiro sem sucesso.

Estou rodando cPanel / WHM no CentOS 5.6 se isso faz alguma diferença. Além disso, o manipulador PHP é suphp.

Não sei o que tentar em seguida ... alguma orientação?

    
por JT White 14.01.2012 / 04:57

4 respostas

2

abra o arquivo php.ini apropriado e adicione o seguinte, substituindo o fuso horário pelo que estiver correto para você (lista de nomes de fuso horário - link :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "America/Chicago"

para mais detalhes:

link

    
por 21.02.2012 / 20:05
1

Parece que pode haver mais de um php.ini no seu sistema e o errado foi editado. Eu acredito que é possível especificar um diretório php.ini diferente por vhost com suPHP (usando a opção suPHP_ConfigPath).

Existem algumas opções disponíveis para você. Em primeiro lugar: você poderia (como a mensagem de erro sugerida) usar:

date_default_timezone_set()

No entanto, isso torna seu código menos portável.

Como alternativa, você pode verificar qual arquivo php.ini está sendo carregado quando o script é executado, criando uma página phpinfo; ou seja, apenas um arquivo php acessível pela web com o seguinte conteúdo:

<?php
phpinfo();

Visualize a página e procure as seções marcadas "Loaded Configuration File" e "Additional .ini files parsed". Eles devem informar quais arquivos ini você precisa editar.

Vale a pena conferir todos os arquivos listados, pois qualquer um deles pode conter configurações de date.timezp com erro de digitação que estão sobrescrevendo o que você definiu.

    
por 16.01.2012 / 18:05
0

Eu corrijo isso removendo as aspas ao redor do valor da string.

Então,

date.timezone="Europa / Londres"

torna-se ...

date.timezone = Europa / Londres

e o problema desapareceu. Estou um pouco preocupado com isso.

    
por 27.02.2013 / 10:40
0

Acabei de resolver este problema. No começo, pensei que o php.ini errado estava sendo lido. Depois de muitas verificações, descobri o problema. Isso foi, que eu tinha um extra 'no meio do php.ini, então estava recebendo um erro lá, impedindo o restante de carregar. Eu consertei e funciona perfeitamente. Você pode ver se há algum erro executando o seguinte: php -i | grep php.ini | tail -n2
Mariano

    
por 10.05.2013 / 23:57