repetir funçao após 1s , js e php

Hugo_Carvalho

Power Member
Boas,

Quero criar um contador, onde o tempo vai "decrescendo" e assim...
Código:
<?php


$start = 0;

function display_cd() {
$start = "5110"; // este é, por exemplo, o tempo em segundos.
$days = intval(($start / 86400));
$hours = intval((($start - ($days * 86400 ))/3600)); 
$minutes = intval((($start - ($days * 86400 ) - ($hours * 3600 ))/60));
$secs = intval((($start - ($days * 86400 ) - ($hours * 3600 ) - ($minutes * 60))));
echo $days . " D<br>";
echo $hours . " H<br>";
echo $minutes . " M<br>";
echo $secs . " S<br>";

$start = $start - 1; // aqui é para subtrair menos um segundo.

}
o que queria agora, era algo que repetisse a funçao de 1s em 1s por exemplo, para o tempo ir "decrescendo".

Algo deste tipo em js, mas que queria em php, se possivel ( a funçao time_cd() era uma parecida á que está em cima, mas em js).

Código:
var end=0;
var refresh=1000;
if(window.start >= end ){
setTimeout('time_cd()',refresh)
outra coisa... se usar o javascript que tenho, ele faz primeiro o php e dps é que faz a contagem .... eu queria que fosse "durante a execução" do php (enquanto página está a carregar):



Código:
<?php

echo '<script>

function start_cd(start){
// start = time in secs. so...
window.start = parseFloat(start);
var end = 0;
var refresh=1000;

if(window.start >= end ){ // if the timer > 0 (= not finished)...
mytime=setTimeout("time_cd()",refresh) // the function time_cd() will be called every milisecond! 
}
else {// when the timer ends (start = 0) ....
document.getElementById("place").innerHTML = "<H1>DONE!</H1>"; 
}

}

function time_cd() {
var days = Math.floor(window.start / 86400); // 1 h = 86400s
var hours = Math.floor((window.start - (days * 86400 ))/3600) 
var minutes = Math.floor((window.start - (days * 86400 ) - (hours * 3600 ))/60)
var secs = Math.floor((window.start - (days * 86400 ) - (hours * 3600 ) - (minutes * 60)))

var text = "<h2>" + window.start + " segundos</h2> <br>(" + days + " Dias " + hours + " Horas " + minutes + " Minutos e " + secs + " Segundos " + " !!)";
document.title = text;
document.getElementById("place").innerHTML = text;
window.start = window.start - 1; //decrement 1 second.

tt=start_cd(window.start);
}
</script>';

$exec_time = $_GET['time'];
?>
<script> start_cd(<? echo $exec_time; ?>);</script>
<?
print "... ";
print "<center><span id='place'></span></center>";



$time = time();


$max_time = $time+$exec_time;



for($i=0;$i<65535;$i++){
        $out .= "X";
}
while(1){


        if(time() > $max_time){
                break;
        }
        
        echo "";
  ( ... )

        }
}



?>
Obrigado :)
 
Última edição pelo moderador:
Back
Topo