Countdown Diario sincronizado com server - Javascript - Portugal-a-Programar
Countdown Diario sincronizado com server
Por m3io, 1 de Setembro de 2013 em Javascript
m3io 0
Publicado 1 de Setembro de 2013
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
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
$.ajax({url: '/site/serversideTIME.php',
function restartCountdown() {
$('#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);
target.setDate(target.getDate() + 1);
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?
O problema está aqui :
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.
Publicado 2 de Setembro de 2013
boas, e obrigado pela ajuda, mas a solução nao funciona
eu fiz como disses-te
//   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.
https://developer.mozilla.org/en-US/docs/Web/Javascript/Reference/Global_Objects/Date/UTC
Não era para comentares, era para entenderes o resultado da função que estavas a usar. O link do @brunoais da-te uma possível resposta ao problema.