Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Giullyanny

date() pegar date_default_timezone_set()

Recommended Posts

Galera esta dando este erro, eu estou pesquisado aqui, mas num sai nada, alguem pode me ajudar com uma dica.

Warning: 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/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/storage/6/78/5d/faculdadeitapuranga/public_html/inscricao_cursos_on.php on line 4

Este é um sistema que peguei para deixa-lo mais dinamico, pois ele vira ano e semestre e tem que ser fazer isso manual, para atualizar, ai eu preciso pegar o ano e o mes e o dia, mas como o tempo foi setado com "date_default_timezone_set()" e eu nunca tinha trabalhado com ele, estou apanhando para pegar.

 

estou tentando fazer isso.:

date('Y').'/'.((date('m') > 6)? 2 : 1);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o time zone esta definido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, foi definido assim date_default_timezone_set('America/Sao_Paulo');, mas quando eu uso o date(), fica retornando estes warning chatos, funciona mas tenho que colocar "@", e eu gostaria de resolver isso da forma correta, mas estou tendo dificuldades.

 

coloquei no codigo isto.:

 

echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');

retornou isto.:

America/Sao_Paulo => America/Sao_Paulo => BRT 

mas seguido destes erros.:

Warning: date_default_timezone_get() [function.date-default-timezone-get]: 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/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/storage/6/78/5d/faculdadeitapuranga/public_html/inscricao_cursos_on.php on line 3

Warning: 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/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/storage/6/78/5d/faculdadeitapuranga/public_html/inscricao_cursos_on.php on line 3

Warning: 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/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/storage/6/78/5d/faculdadeitapuranga/public_html/inscricao_cursos_on.php on line 3
America/Sao_Paulo => America/Sao_Paulo => BRT 

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual versão do php vc esta usando e o sistema operacional?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é a diferença? Eu num quero somente a resolução, quero realmente saber o porque acontece.

 

Aprendi a programar usando este fórum, qdo me sabatinavam. E pediam para que eu realmente olhasse onde estava o erro e falavam de alguma função que poderiam resolver o meu problema, mas apanhei desta ai. rsrsrs

 

esta on-line.

O SO é linux e o php é o 5.2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho duas hipóteses:

  • Você está realizando as operações de data depois de ter chamado a função que define o timezone.
  • Conforme diz a mensagem de erro, você pode ter digitado algum caractere a menos, a mais ou num case diferente daquilo que se espera e o PHP, com seu "achismo" irritante, pressupôs um timezone mas, mesmo assim, mostro ou aviso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a maioria dos links diz para alterar o date.timezone no php.ini. não sei se isso é possivel no seu caso ou se vc ja fez.

 

http://www.melhorweb.com.br/artigo/583-Erro---Warning--date----function-date---It-is-not-safe-to-rely-on-the-system%27s-timezone-settings-.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Shini, Bruno Augusto(chara do cara que mais me bateu neste forum, mas aprendi muito com ele.)

 

Amigos quero agradecer, pois com a dica do Shini, eu encontrei este link.: http://dilbertorosa.com/desenvolvimento/php-como-corrigir-o-erro-de-date-timezone, fala praticamente o que o Shini colocou aqui, e reforçou a fazer o teste, que diga-se de passagem, deu certo.

 

Mas tenho ainda numa pergunta.: Isso num é igual ao "@" que oculta erros não?

 

Pesando no futuro, isso pode problema não? Ou é aguardar para vê?rsrsrs

 

O que importa que foi de boa ajuda e deu certo. Obrigado novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De forma alguma, afinal o próprio manual orienta a fazer dessa forma como alternativa.

 

Porém é bem importante descobrir o motivo de a função não estar funcionando contigo pois editar o PHP.INI só é viável em servidores locais e dedicados (não sei os semi-dedicados), os quais você tem plenos poderes.

 

Os servidores compartilhados não vão deixar a diretiva sem valor (como definida por padrão no php.ini-development e php.ini-production), logo esse erro PODE não aparecer.

 

Mas e se houver troca de servidor e o novo não lidar com esse ponto? Confiar cegamente não é negócio.

 

Ou ainda, se você sendo brasileiro criar um sistema de uso internacional e um cliente em potencial lá no Japão vier a usá-lo? Vai forçá-lo a ver as datas erradas? Ou pior, exibir dados imprecisos por conta desse problema?

 

 

Shini, Bruno Augusto(chara do cara que mais me bateu neste forum, mas aprendi muito com ele.)

 

Será que não fui eu mesmo? :yay:

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.php.net/manual/pt_BR/function.date-default-timezone-get.php

 

Em ordem de preferência, essa função retorna a timezone padrão por:

  • Lendo a timezone configurada utilizando a função date_default_timezone_set() (se existir)

  • Até o PHP 5.4.0 somente: Lendo a variável de ambiente TZ (se não estiver vazia)

  • Lendo o valor de date.timezone do ini (se configurada)

  • Até o PHP 5.4.0 somente: Perguntando ao sistema operacional (se suportado e permitido pelo SO). Isso usa um algoritmo que tenta adivinhar a timezone. De jeito nenhum isso funcionará corretamente em toda situação. Um aviso é mostrado quando esse estágio é alcançado. Não confie que ele será adivinhado corretamente, e configure date.timezone para a zona correta.

 

 

date_default_timezone_get() will still emit a warning in E_STRICT if the timezone is not set; either by date_default_timezone_set() or the ini option of date.timezone.

This is probably not a big deal, but I thought I would contribute what I found.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.