2009-09-15 15 views
1

Je veux implémenter un compteur de temps avec JavaScript ou PHP. J'ai fait quelques recherches sur Google et essayé, mais je n'ai pas eu la sortie dont j'ai besoin.Compteur de temps avec JavaScript ou PHP

Les utilisateurs entreront l'heure dans la zone de texte fournie, puis je dois leur donner un compteur à partir du moment où ils sont entrés.

Exemple: Si j'entre 1:27:38 et cliquez sur soumettre, le temps devrait diminuer et que je devrais obtenir une alerte lorsqu'il atteint 0.

Comment puis-je mettre en œuvre ce?

Répondre

3

En JavaScript:

<html> 
<head> 


</head> 
<body> 
<script language="JavaScript"> 
<!-- // 
var timeleft; 
var nextdue; 
var tick = 1000; 



function parseTime(t) { 
var tt = ("0:00:"+t); 
tt = tt.split(":").reverse(); 
return (tt[0] * 1000)+(tt[1] * 60000)+(tt[2] * 3600000); 
} 



function zeroPad(n) { 
if (n<10) return "0"+n; 
return ""+n; 
} 



function makeTime(t) { 
if (t<0) return "0:00:00"; 
var tt=t+999; 
return Math.floor(tt/3600000)+":"+ 
zeroPad(Math.floor(tt/60000)%60)+":"+ 
zeroPad(Math.floor(tt/1000)%60); 
} 



function startTimer() { 
nextdue = new Date().getTime(); 
timeleft = parseTime(document.timerform.timerbox.value); 
runTimer(); 
} 



function runTimer() { 
document.timerform.timerbox.value=makeTime(timeleft); 
if (timeleft<=0) alert ("Time's up!"); 
else { 
    var timecorr = (new Date().getTime())-nextdue; 
    if (timecorr>0 && timecorr<3000) { 
    timeleft -= (tick+timecorr); 
    nextdue += tick; 
    if (timeleft<1) setTimeout ("runTimer()",tick+timeleft); 
    else setTimeout("runTimer()",Math.max(1,tick-timecorr)); 
    } 
    else { 
    nextdue=(new Date().getTime())+tick; 
    timeleft-=tick; 
    if (timeleft<1) setTimeout ("runTimer()",tick+timeleft); 
    else setTimeout("runTimer()",tick); 
    } 
} 
} 



// --> 
</script> 



<form name="timerform"> 
    Decimal places: <input type="text" name="timerbox" value="0:00:00"></input> 
    <input type="button" value="Start timer" onClick="startTimer()"></input> 
</form> 
</body> 
</html> 
+0

Excellent, c'est ce que je dois Thanx Robert, ce sauvé un peu de temps pour moi –

1

En PHP:

list($hours, $minutes, $seconds) = explode(':', $_POST['time']); 

$seconds = $hours * 3600 + $minutes * 60 + $seconds; 

for ($i = $seconds; $i > 0; $i--) 
{ 
    echo $i; 
    sleep(1); 
    flush(); 
} 

echo 'Countdown finished.'; 
Questions connexes