• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

laptop07

Hora em PHP

12 mensagens neste tópico

Necessito de armazenar a hora na base de dados, mas o problema é que a hora que é usada é a do servidor e é diferente da pretendida.

Estou a usar a função 'getdate();'. Há alguma forma de adquirir a hora num fuso horário diferente do server?

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

strtotime(date("H:i:s")+NUMERO_DE_HORAS_A_MAIS*3600)

Por exemplo:

strtotime(date("H:i:s")+1*3600) // Se a hora local for mais uma hora do que a hora do servidor

strtotime(date("H:i:s")-1*3600) // Se a hora local for menos uma hora do que a hora do servidor

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se quiseres alterar a data dada pelo servidor, podes por putenv('TZ=Europe/Lisbon'); nos teus includes ou assim.

O servidor muda-te a hora para a nossa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Testei ambas das opções e apenas a do Battousai funcionou correctamente com a hora de verão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que eu normalmente faço é guardar sempre a data/hora dados pela função time(), depois é só adicionar os segundos correspondentes...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não testei como coloquei, eu custumo usar aquela maneira, quando tenho a hora/data armazenada no banco de dados e quero acrescentar segundos, minutos, horas, dias...

E para isso faço assim:

date("d/m/Y H:i:s", strtotime($consulta['campo'])+5*3600)

(neste caso mais cinco horas)

Pense que funcionasse da maneira como passei, peço desculpa por não ter testado.

Tive agora, a tentar experimentar e dá da seguinte forma:

date("H:i:s", time()+1*3600); // Somar uma hora

date("H:i:s", time()+HORAS*MINUTOS*60); // Isto para facilitar-te a somar minutos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O teu último exemplo está mal.

Concordo, sendo um dos problemas é faltar-lhe o GeSHi.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não está mal, não ficou foi bem explicado.

Por exemplo:

date("H:i:s", time()+3*30*60); // Soma 1H:30M

Mas, isso também é lógica é só por a cabeça a trabalhar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim já falamos português :D Eu ia sugerir HORAS*3600+MINUTOS*60 :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa sugestão, fica mais fácil de perceber.

E desculpem a minha má explicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora