Jump to content

Recommended Posts

Posted

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?

Posted

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 😄

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.