Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PHP-Master

contagem regressiva bugada

Recommended Posts

é um sistema de meu rpg q faz uma contagem regreciva, mas quando chega a 0 ela desaparece e começa a contar negativo

talvez o erro seja porque eu transformei uma contagem que deveria ser para hora em 15minutos, porfavor me ajudem.

<?php
$checkcitykee = $db->execute("select * from `mudac` where `player_id`=? and `status`='t'", array($player->id));
if ($checkcitykee->recordcount() > 0)
{
$trab = $checkcitykee->fetchrow();
$minutost = $trab['time'] * 3600;
$minutost = $minutost / 60;
$minutost = $minutost - 45;
$minutost = $minutost  * 60;

$time = (($trab['start'] + ($minutost)) - time());


$time_remaining = ceil($time / 60);
include("templates/private_header.php");
echo "<fieldset>";
echo "<legend><b>viagem</b></legend>";
echo "<center>Você está viajando</b>. Tempo Restante: <b>" . $time_remaining . " minuto(s)</b>.</center>";

?>
<br/><b><div id="COUNTER" align="center"></div></b><br/>

<script type="text/javascript">
//<![CDATA[[
<!--
var OpenTimeCOUNTER = '';
var TargetCOUNTER = document.getElementById('COUNTER');
var TargetLEAVE = document.getElementById('LEAVE');
var SecondsCOUNTER = <?php echo $time; ?>;
var TargetTimeCOUNTER = new Date();
var TimeBeginnCOUNTER = TargetTimeCOUNTER.getTime();
var TimeEndCOUNTER = TimeBeginnCOUNTER + (SecondsCOUNTER*1000);
TargetTimeCOUNTER.setTime(TimeEndCOUNTER);
var DayCOUNTER = TargetTimeCOUNTER.getDate();
var MonthCOUNTER = TargetTimeCOUNTER.getMonth() + 1;
var YearCOUNTER = TargetTimeCOUNTER.getYear();
if(YearCOUNTER < 999) YearCOUNTER += 1900;
var hCOUNTER = TargetTimeCOUNTER.getHours();
var mCOUNTER = TargetTimeCOUNTER.getMinutes();
var sCOUNTER = TargetTimeCOUNTER.getSeconds();
var fdayCOUNTER  = ((DayCOUNTER < 10) ? "0" : "");
var fmonthCOUNTER  = ((MonthCOUNTER < 10) ? ".0" : ".");
var fhCOUNTER  = ((hCOUNTER < 10) ? "0" : "");
var fmCOUNTER  = ((mCOUNTER < 10) ? ":0" : ":");
var fsCOUNTER  = ((sCOUNTER < 10) ? ":0" : ":");
var EndDateCOUNTER = fdayCOUNTER + DayCOUNTER + fmonthCOUNTER + MonthCOUNTER  + "." + YearCOUNTER;
var EndTimeCOUNTER = fhCOUNTER+hCOUNTER+fmCOUNTER+mCOUNTER+fsCOUNTER+sCOUNTER;

var counterthing = window.setTimeout("CountDownCOUNTER()", 1000);

function CountDownCOUNTER()
{
var CurrentDateCOUNTER = new Date();
var CurrentTimeCOUNTER = CurrentDateCOUNTER.getTime();
OpenTimeCOUNTER = Math.floor((TargetTimeCOUNTER-CurrentTimeCOUNTER)/1000);
var sCOUNTER = OpenTimeCOUNTER % 60;
var mCOUNTER = ((OpenTimeCOUNTER-sCOUNTER)/60) % 60;
var hCOUNTER = ((OpenTimeCOUNTER-sCOUNTER-mCOUNTER*60)/(60*60));
var fhCOUNTER  = ((hCOUNTER < 10) ? "0" : "");
var fmCOUNTER  = ((mCOUNTER < 10) ? ":0" : ":");
var fsCOUNTER  = ((sCOUNTER < 10) ? ":0" : ":");
var TimeCOUNTER = fhCOUNTER+hCOUNTER+fmCOUNTER+mCOUNTER+fsCOUNTER+sCOUNTER;
var OutputStringCOUNTER=TimeCOUNTER;

if( OpenTimeCOUNTER <= 0 )
{
	OutputStringCOUNTER='<a href="home.php">Pronto<\/a>';
	OutputStringLEAVE='';
	TargetLEAVE.innerHTML=OutputStringLEAVE;
	window.clearTimeout(counterthing);
}
TargetCOUNTER.innerHTML=OutputStringCOUNTER;
counterthing = window.setTimeout("CountDownCOUNTER()",1000);
}
//-->
//]]>
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só usar uma condição para verificar se já chegou a zero e dar um clearTimeout. Só não sei como aplicar isso no seu caso, já que seu código está bastante confuso por conta dos nomes das variaveis...

Mas seria algo tipo isso:

tempo = 10;
onload = function zerarTempo() {
document.getElementsByTagName( 'body' )[0].innerHTML = tempo;
tempo--;
set = setTimeout( zerarTempo, 1000 );
if ( tempo == 0 ) clearTimeout( set );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

if( OpenTimeCOUNTER <= 0 )

{

OutputStringCOUNTER='<a href="home.php">Pronto<\/a>';

OutputStringLEAVE='';

TargetLEAVE.innerHTML=OutputStringLEAVE;

window.clearTimeout(counterthing);

}

eu acho q seria essa a parte de zerar, qual o erro dela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.