Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Agosto quente
Por cidinei
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Resolvendo diferenças de horas no PHP
Linux user
Publicado por Rodrigo Gonçalves em 18/11/2011

Login: rodrigo.gsantana, 34255 pontos
[ Hits: 1176 ]

Resolvendo diferenças de horas no PHP

Em algumas situações já suei a camisa com a função date() ou a time() do PHP. Pois ambas, em algumas situações e em alguns casos, adiantam geralmente uma ou duas horas da hora atual de seu computador.

Então para resolver este problema, vamos usar como base o parâmetro dmdate(). Pois ele pega como padrão o horário do meridiano de Greenwich, ficando a nosso encargo apenas descontar a hora do fuso horário.

No meu caso moro em São Paulo, descontei o valor -3. Vamos ao código:

<? $time = mktime(date('H')-3, date('i'), date('s')); $hora = gmdate("H:i:s", $time); echo $hora; ?>

Belezinha?

Espero ter ajudado, um abraço a todos!


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada PHP e Banco de Dados Mysql
   Dica Linux recomendada Executando comandos do sistema com PHP
   Dica Linux recomendada Xampp - Maneira fácil de se instalar um servidor LAMP (Apache, MySQL e PHP)
   Dica Linux recomendada Upload de arquivos maiores que 2MB em PHP
   Dica Linux recomendada Manipulando checkbox em PHP

Comentários
[1] Comentário enviado por edelmo em 18/11/2011 - 11:44h:

Muito interessante, mas e no caso de regiões com horário de versão? Seria necessário adaptar o código sempre que ocorrer essa mudança! Agora mesmo, em São Paulo estamos no fuso -2.

[2] Comentário enviado por rodrigo.gsantana em 18/11/2011 - 17:50h:

Olá Edelmo, podemos aplicar uma condição dizendo que se a minha data atual for maior que o "inicio do horário de verão" e menor do que o "final do horário de verão", então meu fuso horário será "x". Do contrário será "y", o que você acha do código abaixo?

<?php
echo date('d/m/Y H:i:s', time());

$inicio = strtotime(2011/10/16 00:00:00'); // inicio horario de verao
$termino = strtotime(2012/02/26 00:00:00'); // final horario de verao

if (time() > $inicio && time() < $termino ) {
date_default_timezone_set('Etc/GMT-2');
} else {
date_default_timezone_set('Etc/GMT-2');
}

echo date('d/m/Y H:i:s', time());
?>

Espero ter ajudado, um grande abraço amigo!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.