Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

laptop07

Hora em PHP

Mensagens Recomendadas

laptop07    0
laptop07

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?

:)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Battousai    1
Battousai

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
karva    0
karva

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

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...

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade