Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera,
Estou desenvolvendo um sistema de leilão onde tem um contador regressivo mostrando, em javascript, o tempo restante para o usuário poder dar lances.
O que acontece é que se o usuário alterar a hora do computador dele, o contado regressivo também altera. Porém, este código está hospedado e com time_zone para Sao_Paulo, ou seja, era para pegar a hora do servidor onde está hospedado e não do computador local. Alguém tem alguma ideia do porque está havendo isso? Como faço para determinar o time_zone em javascript?
Valeu.
<script language="javascript">
var YY = 2015;
var MM = 10;
var DD = 10;
var HH = 10;
var MI = 00;
var SS = 00;
function relogioRegressivo() {
var hoje = new Date();
var futuro = new Date(YY,MM-1,DD,HH,MI,SS);
var ss = parseInt((futuro - hoje) / 1000);
var mm = parseInt(ss / 60);
var hh = parseInt(mm / 60);
var dd = parseInt(hh / 24);
ss = ss - (mm * 60);
mm = mm - (hh * 60);
hh = hh - (dd * 24);
var faltam = '';
faltam += (toString(hh).length) ? hh+'<span style=\"font-size:12px;\">h</span> ' : '';
faltam += (toString(mm).length) ? mm+'<span style=\"font-size:12px;\">m</span> ' : '';
faltam += ss+'<span style=\"font-size:12px;\">s</span> ';
if (dd+hh+mm+ss > 0) {
document.getElementById('relogio').innerHTML = faltam;
setTimeout(relogioRegressivo,1000);
}else{
document.getElementById('relogio').innerHTML = '0<span style=\"font-size:12px;\">h</span> 0<span style=\"font-size:12px;\">m</span> 0<span style=\"font-size:12px;\">s</span>';
document.getElementById('dar_lance').style.display = "none";
setTimeout(relogioRegressivo,1000);
}
}
</script>Valeu pela dica Bruno, show de bola. Só uma pergunta: como faço para ao invés de aparecer 1 dia, ... Ele incrementar as horas dos dias nas próprias horas. Ex.: Faltam: 1 dia, 08h 20m 30s, queria que ficasse: 32h 20m 30s.
Vi que o segredo está aqui, mas não acertei manipular.
function _timeLeft (now, end) {
if (now <= end) {
var seconds = parseInt((end - now) / 1000, 10),
minutes = parseInt(seconds / 60, 10),
hours = parseInt(minutes / 60, 10),
days = parseInt(hours / 24, 10),
left = '';
seconds = seconds - (minutes * 60);
minutes = minutes - (hours * 60);
hours = hours - (days * 24);
left += (days && days > 1) ? days + ' dias, ' : (days === 1 ? '1 dia, ' : '');
left += (toString(hours).length) ? hours + 'h ' : '';
left += (toString(minutes).length) ? _timePad(minutes) + 'm ' : '';
left += _timePad(seconds) + 's';
if (days + hours + minutes + seconds > 0) {
return left;
} else {
return 'Tempo esgotado!!!!';
}
} else {
return 'Tempo esgotado!!!!';
}
} ValeuNão faça a divisão por 24
days = parseInt(hours / 24, 10),
O mais seguro é vc sempre fazer com base no servidor.
Exemplo:
https://github.com/wbruno/examples/blob/gh-pages/time-counter/index.html
Funcionando:
http://wbruno.github.io/examples/time-counter/