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

m3io

Countdown Diario sincronizado com server

Mensagens Recomendadas

m3io

boas pessoal, já ando aqui á 4 dias a tentar resolver um problema com um countdown diario

a situacao é a seguinte

tenho um countdown diario a dar com uma hora definida. e faz refresh ao acabar, ate aqui tudo bem

o problema é mesmo que tem de mostrar a mesma hora para todo o mundo, por exemplo faltam 2 horas na china ou faltam 2 horas na tuga, sempre igual para todos, este é o obstáculo que não consigo ultrapassar

o codigo é o seguinte

serversideTIME.php

date_default_timezone_set('Europe/Paris');
$now = new DateTime();
echo $now->format("M j, Y H:i:s O") . "\n";

estou a usar o script de http://keith-wood.name/countdown.html

aqui o javascript

$('#time').countdown({serverSync: serverTime(), until: getTarget(), onExpiry: restartCountdown, compact: true});
///obtem hora do servidor
function serverTime() {
  var time = null;
  $.ajax({url: '/site/serversideTIME.php',
	    async: false, dataType: 'text',
	    success: function(text) {
		    time = new Date(text);
	    }, error: function(http, message, exc) {
		    time = new Date();
	    }});
    return time;
}
//
function restartCountdown() {
  window.location.reload(true);
  $('#time').countdown('change', {until: getTarget()});
}
//
function getTarget() {
  var serverDate = new Date(<?php echo strtotime(now()); ?>);
  var target = serverDate;
  var hora = 15;
  var minutos = 51;
  if (target.getHours() < hora || (target.getHours() == hora && target.getMinutes() < minutos)) {
  target.setHours(hora, minutos, 0, 0);
  }
  else {
  target.setDate(target.getDate() + 1);
  target.setHours(hora, minutos, 0, 0);
  }
  return target;
}

basicamente ele vai buscar a tempo limite definido em getTarged de todos os dias, e ao expirar faz um refresh.

mas o problema é que devia mostrar que faltam x minutos igual em todas as partes do mundo e não 1 hora em portugal, 4 horas na china, 0 noutro lado qualquer....

alguém sabe o que pode ser o problema?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

O problema está aqui :

time = new Date();

Esta linha vai-te dar a data corrente em função da localização do cliente (ou da que ele indicou no SO / browser). Para não teres este problema precisas de mudar o script de forma a fazer o countdown sem essa data.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
m3io

boas, e obrigado pela ajuda, mas a solução nao funciona :(

eu fiz como disses-te

}, error: function(http, message, exc) {
	   //   time = new Date();

comentei essa parte, o stress é que eu mudo a hora e fuso horario do meu pc e quando volto a testar ,

em vez de dizer que faltam por exemplo 30 minutos e diz que faltam 30 minutos e a diferenca de horas do gmt do cliente,

enquanto que o meu objectivo é que faca countdown até á meia noite de portugal, para todo o planeta independentemente que sejam que horas forem na china, á meia de portugal faz o tal refresh em todo o mundo.

Obrigado desde ja pela ajuda :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

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.