View Full Version : Ajuda com o Echo da Date =(
The Lavigne 08-05-2008, 15:57 Boas pessoal.
Estou num alojamento internacional como posso fazer "<? echo date('H:i - d/t/Y'); ?>" no horário de Portugal?
É que aqui são 14h56 e quando faço o echo da date aparece 9h56 =(
Alguém me ajuda???
date_default_timezone_set("Europe/Lisbon")
mas não sei se o servidor te permite alterar essas coisas. nunca usei servidores, não sei como funcionam nesse aspecto
se não der sempre podes somar 5 horas de cada vez que les a data
The Lavigne 08-05-2008, 16:41 date_default_timezone_set("Europe/Lisbon")
mas não sei se o servidor te permite alterar essas coisas. nunca usei servidores, não sei como funcionam nesse aspecto
se não der sempre podes somar 5 horas de cada vez que les a data
Pois nem eu sei onde se muda a data no servidor.
Já agora como é que soma +5 horas na data?
Thanks :)
a função que eu te dei, podes usá-la dentro do teu códio php. o que eu não sei é se os servidores costumam permitir alterações a esse tipo de coisas.
o desenrascanço (somar 5 horas) pode ser assim:
<?php
$hora= date('H')+5;
echo $hora.date(':i - d/t/Y');
?>
The Lavigne 08-05-2008, 16:59 a função que eu te dei, podes usá-la dentro do teu códio php. o que eu não sei é se os servidores costumam permitir alterações a esse tipo de coisas.
o desenrascanço (somar 5 horas) pode ser assim:
<?php
$hora= date('H')+5;
echo $hora.date(':i - d/t/Y');
?>
Funciona :D Viva aos desenrascanços! LOL
Fica bem obrigado ! :D
Futeboladas 08-05-2008, 18:42 O desenrascança é má ideia... deves ter um ficheiro .php que incluis em todas as páginas tipo: common.php. Nesse ficheiro mete o que já referiram:
date_default_timezone_set('Europe/Lisbon');
Desta forma todas as horas vão estão certas :)
Para o MySQL ficar com as horas certas, antes de fazeres a query faz sempre esta: (basta uma vez por ligação)
SET time_zone = "Europe/Lisbon"
Para o SSH ficar bem (e provavelmente o PHP/Apache, mas depende do host), cria um file .profile com isto:
export TZ="Europe/Lisbon"
ou um file .bash_profile com o mesmo conteudo referido (nunca sei qual é o file certo :P)
pois eu tinha dado essa solução porque como já disse, não sei se os servidores permitem essas coisas. lavigne, chegaste a testar a função que eu dei? na pratica vai dar ao mesmo mas é uma prática melhor do que estar a desenrascar
Futeboladas 08-05-2008, 20:02 pois eu tinha dado essa solução porque como já disse, não sei se os servidores permitem essas coisas. lavigne, chegaste a testar a função que eu dei? na pratica vai dar ao mesmo mas é uma prática melhor do que estar a desenrascar
A solução que deste é, pelo que sei, a solução recomendada e que funciona em todos os servers. Já testei em pelo menos 2 hosts com timezones diferentes e funciona sempre :) Pelo menos em PHP5 é a solução 100% certa.
Não esquecer é incluir essa chamada logo no inicio de qualquer PHP file e incluir em todos os ficheiros! (daí eu recomendar que se use um ficheiro common.php, todas as páginas "index.php" por exemplo devem começar por incluir o common.php, é uma questão de organização básica e muito usada).
Mas qualquer coisa, é consultar:
http://pt.php.net/manual/en/function.date-default-timezone-set.php
Edit: correcção. Funciona desde que se use PHP 5.1 ou superior!
The Lavigne 10-05-2008, 02:33 Encontrei grande BUG neste desenrascando :D
25:30 - 09/31/2008
:(
Mas com aquela função já funciona :D
The Lavigne 11-05-2008, 02:18 Alguma coisa esta mal com as vossas funções, agora aparece assim:
01:17 - 11/31/2008
a hora tá certa agora a data não :lol:
Que código estás a usar? Não andaste a misturar desenrascanços, pois não? :P
deves estar a usar a função date tal e qual como eu pus no exemplo, e ela tem um erro, que nem sei porque é que pus assim
echo $hora.date('H:i - d/t/Y');
troca o "t" por um "m" e já fica direito
echo $hora.date('H:i - d/m/Y');
The Lavigne 11-05-2008, 23:02 Estou a usar assim:
<?php
date_default_timezone_set("Europe/Lisbon");
echo date('H:i - d/t/Y');
?>
E depois aparece assim:
22:01 - 11/31/2008
por acaso leste o que eu escrevi? troca o "t" por um "m". foi um engano meu.
metralha761 12-05-2008, 01:32 t Number of days in the given month 28 through 31
:) no proximo mes ja te mostra 30 :D
The Lavigne 12-05-2008, 03:24 Por acaso tenho que passar uma vista de olha no significado das letras em relação á date :D
MPalhas: Muito obrigado pela sua atenção, já está tudo corrigido e funcionar :)
|