shizzzzzzzz Posted August 23, 2013 at 07:10 PM Report #522525 Posted August 23, 2013 at 07:10 PM 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...
Rui Carlos Posted August 23, 2013 at 07:23 PM Report #522527 Posted August 23, 2013 at 07:23 PM 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. Rui Carlos Gonçalves
NunoDinis Posted August 23, 2013 at 07:30 PM Report #522529 Posted August 23, 2013 at 07:30 PM 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
shizzzzzzzz Posted August 23, 2013 at 07:49 PM Author Report #522530 Posted August 23, 2013 at 07:49 PM 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 ..
shizzzzzzzz Posted August 23, 2013 at 08:36 PM Author Report #522535 Posted August 23, 2013 at 08:36 PM 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>
shizzzzzzzz Posted August 23, 2013 at 08:56 PM Author Report #522536 Posted August 23, 2013 at 08:56 PM 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.
NunoDinis Posted August 23, 2013 at 09:21 PM Report #522538 Posted August 23, 2013 at 09:21 PM A mim não acontece.. de qualquer das formas adiciona isto ao documento: date_default_timezone_set('Europe/Lisbon'); 1 Report Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
shizzzzzzzz Posted August 23, 2013 at 09:43 PM Author Report #522539 Posted August 23, 2013 at 09:43 PM Nuno, olha para as horas durante uns 2min e vais ver o bug.. (script q mandei)
taviroquai Posted August 24, 2013 at 01:10 AM Report #522550 Posted August 24, 2013 at 01:10 AM @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? 😉
shizzzzzzzz Posted August 24, 2013 at 07:02 AM Author Report #522553 Posted August 24, 2013 at 07:02 AM @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); }
yoda Posted August 24, 2013 at 08:56 AM Report #522555 Posted August 24, 2013 at 08:56 AM @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'); before you post, what have you tried? - http://filipematias.info sense, purpose, direction
shizzzzzzzz Posted August 24, 2013 at 10:38 AM Author Report #522557 Posted August 24, 2013 at 10:38 AM @yoda, podes ajudar-me ? Nao estou a perceber muito bem :ss
yoda Posted August 24, 2013 at 11:34 AM Report #522559 Posted August 24, 2013 at 11:34 AM (edited) 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 August 24, 2013 at 11:35 AM by yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction
shizzzzzzzz Posted August 25, 2013 at 07:51 AM Author Report #522582 Posted August 25, 2013 at 07:51 AM @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..
taviroquai Posted August 25, 2013 at 12:08 PM Report #522593 Posted August 25, 2013 at 12:08 PM (edited) @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 August 30, 2013 at 11:47 AM by brunoais Mesmo que tenh php, o main é o javascript
shizzzzzzzz Posted August 25, 2013 at 12:57 PM Author Report #522597 Posted August 25, 2013 at 12:57 PM @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..
NunoDinis Posted August 25, 2013 at 01:37 PM Report #522600 Posted August 25, 2013 at 01:37 PM @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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now