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

shizzzzzzzz

Timezone code

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 ..

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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>

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

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

date_default_timezone_set('Europe/Lisbon');

  • Voto 1

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

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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? ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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);
}

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

@shizzzzzzzz,

A timezone em javascript depende das horas definidas no browser do cliente, se queres sempre horas de Portugal obtém as horas em PHP e o resto faz-se com javascript. No PHP usa isto antes do resto do código :

date_default_timezone_set('Europe/Lisbon');

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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/

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 );

Editado por brunoais
Mesmo que tenh php, o main é o javascript

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação 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 os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.