Ir para o conteúdo
xploit

relogio digital com hora do servidor

Mensagens Recomendadas

xploit    3
xploit

Boas pessoal como o próprio título indica gostaria de saber como faço um relogio digital( ou seja que se actualize) , mas em vez de ser com a minha hora

local que seja com a hora do servidor.. Não percebo muito de javascript só mesmo de php precisava de uma ajuda vossa muito obrigado.

Cumprimentos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skin    0
skin

Com javascript isso não é possível porque javascrit é interpretado do lado do utilizador pelo browser (daí ser uma linguagem client side) assim sendo vai retribuir a hora do computador do utilizador.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
softklin    12
softklin

Podes sempre fazer algo do género:

<?php
$horaServidor = date("d/m/Y h:i:s");
?>
<script>
var d = new Date("<?php echo $horaServidor; ?>");
document.write(d.toGMTString())
</script>

A hora é inicializada com a do servidor. Depois terás de uma função, será a setTimeout() com o código para actualizar isto de segundo a segundo... Não é uma solução perfeita, mas se quiseres o máximo rigor, podes ir de tempos a tempos, sincronizando com AJAX.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xploit    3
xploit

Pois o grande problema disto tudo é que eu de javascript/ajax não percebo, mas a ideia é so mesmo actualizar a H:I:S, não precisa ser a data completa,

e depois apartir dessa hora ||date("h:i:s");|| criar um código que actualiza-se a hora para ser uma coisa dinamica eu não faço mesmo a minima ideia e de como fazer isso, ou seja o setTimeout() nem como implementá-lo se me puderem ajudar fico muito agradeçido.

Cumprimentos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

Colocas isto entre <head></head>:

<script type="text/javascript">
<!--
var h = <?=date("H", time()+3*3600);?>; <!-- Aqui indicas o número de horas a mais ou a menos do servidor (neste caso 3) -->
var m = <?=date("i")?>;
var s = <?=date("s");?>;
function Relogio(){
if(s>=59){s=-1;m=m+1;
if(m>=60){m=00;h=h+1;
if(h>=24){h=00;}}}s=s+1;
if(h<=9){xh="0"+h;}else{xh=h;}
if(m<=9){xm="0"+m;}else{xm=m;}
if(s<=9){xs="0"+s;}else{xs=s;}
document.getElementById("Relogio").innerHTML = xh+":"+xm+":"+xs;
t=setTimeout("Relogio()", 1000);
}
-->
</script>

Depois, onde queres mostrar o relogio metes:

<span id="Relogio"></span>

Este script foi retirado da internet (não me lembro de onde) e alterado por mim.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xploit    3
xploit

testei o teu código e nao funciona penso nao estar a fazer algo de errado.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">

var h = <?=date("H", time()+3*3600);?>; 
var m = <?=date("i")?>;
var s = <?=date("s");?>;
function Relogio(){
if(s>=59){s=-1;m=m+1;
if(m>=60){m=00;h=h+1;
if(h>=24){h=00;}}}s=s+1;
if(h<=9){xh="0"+h;}else{xh=h;}
if(m<=9){xm="0"+m;}else{xm=m;}
if(s<=9){xs="0"+s;}else{xs=s;}
document.getElementById("Relogio").innerHTML = xh+":"+xm+":"+xs;
t=setTimeout("Relogio()", 1000);
}
</script>
</head>

<body>
</body>
<span id="Relogio"></span>
</html>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
softklin    12
softklin

Só te faltou chamar a função. Fica aqui o código:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">

var h = <?php echo date("H");?>; 
var m = <?php echo date("i");?>;
var s = <?php echo date("s");?>;
function Relogio(){
if(s>=59){s=-1;m=m+1;
if(m>=60){m=00;h=h+1;
if(h>=24){h=00;}}}s=s+1;
if(h<=9){xh="0"+h;}else{xh=h;}
if(m<=9){xm="0"+m;}else{xm=m;}
if(s<=9){xs="0"+s;}else{xs=s;}
document.getElementById("Relogio").innerHTML = xh+":"+xm+":"+xs;
t=setTimeout("Relogio()", 1000);
}
</script>
</head>

<body onload="Relogio();">
<span id="Relogio"></span>
</body>
</html>

Removi as 3 horas a mais, porque acho não ser necessário, visto que o PHP vai buscar as horas no servidor onde está a trabalhar.

Bom código TheGlorious ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

Funciona sim.

Eu utilizo no meu jogo.

As horas a mais são para caso tenhas a página alojada num servidor estrangeiro e queiras que mostre para o público a hora portuguesa.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
softklin    12
softklin

Funciona sim.

Eu utilizo no meu jogo.

As horas a mais são para caso tenhas a página alojada num servidor estrangeiro e queiras que mostre para o público a hora portuguesa.

Ninguém disse que não funcionava  :) O xlpoit apenas esqueceu-se de chamar a função Relogio no arrancar da página. E as horas também alterei porque a hora que o xploit pretende as horas do servidor.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheGlorious    0
TheGlorious

"testei o teu código e nao funciona" by xploit

Eu só disse que funcionava e disse para que servia aquele "3*3600", porque ele poderia não saber e como muita gente usa servidores estrangeiros e muitas vezes querem que apareça sempre a hora portuguesa, então eu já incluí isso :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
yoda

"testei o teu código e nao funciona" by xploit

Eu só disse que funcionava e disse para que servia aquele "3*3600", porque ele poderia não saber e como muita gente usa servidores estrangeiros e muitas vezes querem que apareça sempre a hora portuguesa, então eu já incluí isso :)

O php tem funções nativas para converter os GMTs, nem era preciso essa multiplicação.

As funções são estas :

setlocal

http://pt2.php.net/manual/en/function.setlocale.php

gmdate

http://pt2.php.net/manual/en/function.gmdate.php

Mas isto foi só um aparte :)

Partilhar esta mensagem


Link 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