Jump to content
shizzzzzzzz

Timezone code

Recommended Posts

shizzzzzzzz

Vinha aqui pedir-vos ajuda sobre este código:

<?php $portugal_time = " ".date("G:i:s", strtotime(" - 1 hours")); echo "$portugal_time"; ?>

era o seguinte, gostaria de saber como faço para o relógio não parar, ou seja, os segundos estarem sempre a "rodar" e não apenas só quando fazemos refresh a página...

Share this post


Link to post
Share on other sites
Rui Carlos

Podes adicionar um refresh automático à página, o que não me parece grande ideia.

Ou então passas a usar uma linguagem client side, como o Javascript.

Share this post


Link to post
Share on other sites
NunoDinis

function hora() {
    var data = new Date();
    var sem = data.getDay();
    var dia = data.getDate();
    var mes = data.getMonth();
    var ano = data.getFullYear();    // Firefox apresenta bug ainda, mas basta substituir 'data.getYear();' pelo ano corrente
    var hora = data.getHours();
    var min = data.getMinutes();
    var seg = data.getSeconds();

    if (seg < 10) { seg = "0" + seg; }
    if (min < 10) { min = "0" + min; }
    m = new Array()
    m[0] = "Janeiro"
    m[1] = "Fevereiro"
    m[2] = "Março"
    m[3] = "Abril"
    m[4] = "Maio"
    m[5] = "Junho"
    m[6] = "Julho"
    m[7] = "Agosto"
    m[8] = "Setembro"
    m[9] = "Outubro"
    m[10] = "Novembro"
    m[11] = "Dezembro"
    d = new Array()
    d[0] = "Domingo"
    d[1] = "Segunda-feira"
    d[2] = "Terça-feira"
    d[3] = "Quarta-feira"
    d[4] = "Quinta-feira"
    d[5] = "Sexta-feira"
    d[6] = "Sábado"
   tempo.innerHTML = d[sem] + ", " + dia + " de " + m[mes] + " de " + ano + ", " + hora + ":" + min+ ":" + seg;
   setTimeout("Tempo()", "1000");
  }

<!--  ---- -->
<body onload="hora()">
<div id="tempo"> </div>
<!--  ---- -->


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
shizzzzzzzz

Obrigado, mas este código em JS é da hora que tens no pc right? Ou é de portugal ?

P.S: Os segundos não estão sempre a "rodar" só quando faço refresh ..

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
shizzzzzzzz

Já consegui. Se alguém quiser está aqui:

function showTime(){
 var time = new Date();
 var hour = time.getHours();
 var minute = time.getMinutes();
 var second = time.getSeconds();

 if(hour<10) hour = "0"+hour;
 if(minute<10) hour = "0"+minute;
 if(second<10) hour = "0"+second;
 var tempo = hour+":"+minute+":"+second;

 document.getElementById("timer").innerHTML=tempo;
}
function initTime(){
 setInterval(showTime, 1000);
}

<body onload="initTime();">
<span id="timer"></span>

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
shizzzzzzzz

Desculpem o 3º post seguido, mas.. Este código que coloquei quando o minuto muda (ex: 22:23:59 -> 00:24:01) volta ao zero a hora, e quando chega aos 10 segundos volta ao normal.. Ajudem-me sfv.

Share this post


Link to post
Share on other sites
NunoDinis

A mim não acontece.. de qualquer das formas adiciona isto ao documento:

date_default_timezone_set('Europe/Lisbon');

  • Vote 1

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
shizzzzzzzz

Nuno, olha para as horas durante uns 2min e vais ver o bug.. (script q mandei)

Share this post


Link to post
Share on other sites
taviroquai

@shizy

Olha bem para o teu código...

if(minute<10) hour = "0"+minute;
if(second<10) hour = "0"+second;

Tu queres é:

if(minute<10) minute = "0"+minute;
if(second<10) second = "0"+second;

Copy/paste não foi? ;)

Share this post


Link to post
Share on other sites
shizzzzzzzz

@taviroquai, sim foi xdd

Sera que consegues colocar este script apenas com a hora de Portugal continental? :

function showTime(){
var time = new Date();
var hour = time.getHours();
var minute = time.getMinutes();
var second = time.getSeconds();


if(hour<=10) hour = "0"+hour;
if(minute<=10) minute = "0"+minute;
if(second<=10) second = "0"+second;
var tempo = hour+":"+minute+":"+second;

document.getElementById("timer").innerHTML=tempo;
}
function initTime(){
setInterval(showTime, 0);
}

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
yoda

No PHP :

<?php

# fuso horário
date_default_timezone_set('Europe/Lisbon');

$portugal_time = " ".date('G:i:s');

echo '<div id="time">'.$portugal_time.'</div>';

?>

Depois disto tens de usar o javascript para pegar no valor que o PHP imprimir na data e dar continuidade ao relógio. Aqui tens um exemplo : http://jsfiddle.net/yodapt/NFMX6/2/

Edited by yoda

Share this post


Link to post
Share on other sites
shizzzzzzzz

@yoda, desculpa estar a ser chato mas eu não consegui fazer isso. Eu meto o php mas ao colocar o JS o relógio fica na mesma, não fica sempre a "rodar". Será que me podias ajudar? Desculpe mais uma vez pelo incomodo..

Share this post


Link to post
Share on other sites
taviroquai

@shizy

Outra solução...



<?php
date_default_timezone_set('Europe/Lisbon');
$portugal_time = time()*1000;
?>
<span id="timer"></span>
<script type="text/javascript">
function showTime() {

   var hour = time.getHours();
   var minute = time.getMinutes();
   var second = time.getSeconds();

   if(hour<=10) hour = "0"+hour;
   if(minute<=10) minute = "0"+minute;
   if(second<=10) second = "0"+second;
   var tempo = hour+":"+minute+":"+second;

   document.getElementById("timer").innerHTML=tempo;
   time.setSeconds(time.getSeconds()+1);
}

var time = new Date(<?=$portugal_time?>);
var interval = setInterval(showTime, 1000);
</script>

EDIT: claro que estava a andar para trás lol... já corrigi nesta linha:

time.setSeconds(time.getSeconds() + 1 );

Edited by brunoais
Mesmo que tenh php, o main é o javascript

Share this post


Link to post
Share on other sites
shizzzzzzzz

@taviroquai, o codigo nao funciona como deve de ser. Aumentei a hora do relogio do meu computador e ele nao assumiu a hora de Lisboa.. E o tempo estava a voltar para tras..

Share this post


Link to post
Share on other sites
NunoDinis

@shizzzzz, onde está o problema ? O Script, que fiz questão de copiar para cá, funciona perfeitamente.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.