1
我想用JavaScript或PHP實現時間計數器。我做了一些在Google上看過並嘗試過,但沒有得到我需要的輸出。使用JavaScript或PHP的時間計數器
用戶將在提供的文本框中輸入時間,然後我需要從他們輸入時間給他們一個計數器。
例子:如果我進入1:27:38
並點擊提交,時間應適當減少,當它到達0
我如何能實現這一點,我應該得到一個警告?
我想用JavaScript或PHP實現時間計數器。我做了一些在Google上看過並嘗試過,但沒有得到我需要的輸出。使用JavaScript或PHP的時間計數器
用戶將在提供的文本框中輸入時間,然後我需要從他們輸入時間給他們一個計數器。
例子:如果我進入1:27:38
並點擊提交,時間應適當減少,當它到達0
我如何能實現這一點,我應該得到一個警告?
在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>
在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.';
優秀的,這是我需要的 感謝名單羅伯特,這節省了一些時間,我 – 2009-09-16 10:22:39