1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda com o Echo da Date =(

Discussão em 'Web Development' iniciada por The Lavigne, 8 de Maio de 2008. (Respostas: 15; Visualizações: 1134)

  1. The Lavigne

    The Lavigne Banido

    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???
     
  2. MPalhas

    MPalhas Power Member

    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
     
  3. The Lavigne

    The Lavigne Banido


    Pois nem eu sei onde se muda a data no servidor.

    Já agora como é que soma +5 horas na data?

    Thanks :)
     
  4. MPalhas

    MPalhas Power Member

    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:
    Código:
    <?php
    $hora= date('H')+5;
    echo $hora.date(':i - d/t/Y');
    ?>
    
     
  5. The Lavigne

    The Lavigne Banido


    Funciona :D Viva aos desenrascanços! LOL

    Fica bem obrigado ! :D
     
  6. 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)
     
  7. MPalhas

    MPalhas Power Member

    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
     
  8. 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!
     
    Última edição: 8 de Maio de 2008
  9. The Lavigne

    The Lavigne Banido

    Encontrei grande BUG neste desenrascando :D
    25:30 - 09/31/2008

    :(


    Mas com aquela função já funciona :D
     
    Última edição: 10 de Maio de 2008
  10. The Lavigne

    The Lavigne Banido

    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:
     
  11. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Que código estás a usar? Não andaste a misturar desenrascanços, pois não? :P
     
  12. MPalhas

    MPalhas Power Member

    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');
     
  13. The Lavigne

    The Lavigne Banido

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

    MPalhas Power Member

    por acaso leste o que eu escrevi? troca o "t" por um "m". foi um engano meu.
     
  15. metralha761

    metralha761 1st Folding then Sex

    t Number of days in the given month 28 through 31
    :) no proximo mes ja te mostra 30 :D
     
  16. The Lavigne

    The Lavigne Banido

    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 :)
     

Partilhar esta Página