Ajustando a Hora do Servidor pelo Fuso Horário GMT
Bom galera esse artigo é apenas uma demonstração de como ajustar o horário do servidor para que as datas em seu site não fique com o horário local do servidor.
Nesse artigo sera usado dois tipos de de função do php: a função gmdate() que ajusta o horário para (GMT 00:00) e a função mktime() que gera o timestamp usado na função gmdate(). Gmdate não tem nenhuma diferença entre a função date() a não ser o ajuste de GMT mesmo, mas da mesma forma vou passar o parâmetro da função.
Parâmetro GMDATE: gmdate(formato [,timestamp]);
Parâmetro MKTIME: mktime([hora] [,minuto] [,segundo] [,mês] [,dia] [,ano] [é_dst])
Esse é o script pronto para pegar a data corretamente com o local em que o site terá a maioria das visitas, no caso dos brasileiros seria GMT-03:00, repare no timestamp mktime que date(H) vem com um sinal de subtração para retirar assim três horas do relógio e deixar a data corretamente com o horário de Brasília, caso você queira ajustar com o horário do servidor de acordo com do Japão teria que colocar "date(H)+12".
Para ver o script rodando visite http://membres.lycos.fr/blogged/gmt.php
O único problema constatado com esse script é com o horário de verão brasileiro, forçando algumas linhas a mais, e mudar de -3 horas para -2 horas, forçando criar uma espécie de administrador ou uma atualização manual do script.
Uma outra boa sugestão é a utilização da classe PEAR::Date disponível na URL abaixo:
http://pear.php.net/package-info.php?pacid=57
Abraços,
Rafael
Nesse artigo sera usado dois tipos de de função do php: a função gmdate() que ajusta o horário para (GMT 00:00) e a função mktime() que gera o timestamp usado na função gmdate(). Gmdate não tem nenhuma diferença entre a função date() a não ser o ajuste de GMT mesmo, mas da mesma forma vou passar o parâmetro da função.
Parâmetro GMDATE: gmdate(formato [,timestamp]);
Parâmetro MKTIME: mktime([hora] [,minuto] [,segundo] [,mês] [,dia] [,ano] [é_dst])
<?php $timestamp = mktime(date("H")-3, date("i"), date("s"), date("m"), date("d"), date("Y")); echo gmdate("d/m/Y H:i:s", $timestamp); ?>
Esse é o script pronto para pegar a data corretamente com o local em que o site terá a maioria das visitas, no caso dos brasileiros seria GMT-03:00, repare no timestamp mktime que date(H) vem com um sinal de subtração para retirar assim três horas do relógio e deixar a data corretamente com o horário de Brasília, caso você queira ajustar com o horário do servidor de acordo com do Japão teria que colocar "date(H)+12".
Para ver o script rodando visite http://membres.lycos.fr/blogged/gmt.php
O único problema constatado com esse script é com o horário de verão brasileiro, forçando algumas linhas a mais, e mudar de -3 horas para -2 horas, forçando criar uma espécie de administrador ou uma atualização manual do script.
Uma outra boa sugestão é a utilização da classe PEAR::Date disponível na URL abaixo:
http://pear.php.net/package-info.php?pacid=57
Abraços,
Rafael
Perfeito amigão, deu certo aqui, obrigado!!!
22/05/2016 12:33pm
(~8 anos atrás)
Muito Bom seu artigo! Resolveu meu problema facilmente! Obrigado!
17/04/2011 5:35pm
(~13 anos atrás)
Para verificar o horário de verão, e fazer o ajuste automaticamente:
<?
//FUNÇÃO DATE(i em maiúsculo)
$data = date("I");
//VERIFICA O RESULTADO
echo $data ? "Horário de Verão" : "Horário Normal";
?>
<?
//FUNÇÃO DATE(i em maiúsculo)
$data = date("I");
//VERIFICA O RESULTADO
echo $data ? "Horário de Verão" : "Horário Normal";
?>
25/10/2005 6:44am
(~19 anos atrás)
vc pode colocar condicoes, assim, a cada horario uma determinada pagina se abre, nao so a cada hora, tbm a cada fracao de hora, se desejar.
mas aí é mais facil utilizando o javascript, se nao conseguir fazer entre em cntato comigo.
att.
Johnathan Cardoso
mas aí é mais facil utilizando o javascript, se nao conseguir fazer entre em cntato comigo.
att.
Johnathan Cardoso
09/02/2003 10:35pm
(~22 anos atrás)
Caro Flavio Lacerda,
não precisa se preocupar com horário incorreto pois o horário é ajustado por GMT, sendo assim que, o horário vai pra zero horas e o que conta é minuto, segundo e data que fica sincronizado com o a escolha da região mais apropriada ao GMT (Brasília -03:00).
E nunca que um administrador gringo vai ajustar a hora do servidor exclusivamente para um brasileiro.
Isso é mais uma alternativa pra que não quer pagar hospedagem e usa os hosts gratuitos que geralmente são gringos.
Único problema constatado mesmo foi a questão do horário de verão que o GMT cai pra GMT(-02:00).
Att.
Rafael Verdi Sachetto
não precisa se preocupar com horário incorreto pois o horário é ajustado por GMT, sendo assim que, o horário vai pra zero horas e o que conta é minuto, segundo e data que fica sincronizado com o a escolha da região mais apropriada ao GMT (Brasília -03:00).
E nunca que um administrador gringo vai ajustar a hora do servidor exclusivamente para um brasileiro.
Isso é mais uma alternativa pra que não quer pagar hospedagem e usa os hosts gratuitos que geralmente são gringos.
Único problema constatado mesmo foi a questão do horário de verão que o GMT cai pra GMT(-02:00).
Att.
Rafael Verdi Sachetto
30/01/2003 7:02pm
(~22 anos atrás)
É mais facil o administrador do servidor ajustar a hora corretamente, pois corre o risco de você ajustar o horário exibido com um horário incorreto.
29/01/2003 12:17pm
(~22 anos atrás)