2013-11-21 86 views
-1

我有一個PHP腳本,增加了時間成SQL-DB這樣的:PHP倒計時,需要動態

$howlong = 75; // Amount of seconds 
    $timetowait=time()+ $howlong; // This inserts into "timetowait" in SQL DB 

然後顯示我的用戶,他們必須等待多久,我有這樣的:

上述
$timeleft= $rows['timetowait']; // This is the field in DB from above^ 
func_time($timeleft); // Function below, which shows the time left 

功能是:

function func_time($until){ 
$now = time(); 
$difference = $until - $now; 
$seconds = $difference; 
$output = "$seconds seconds"; 
return $output; 
} 

它工作正常,但我希望它是一個動態的倒計時。 (自動倒計時,不刷新網站)我的問題在於,我使用的是「時間()」,而不是純文本(f.ex 21/11/2013 20:00)

+0

你添加了標籤「的javascrip t「在你的問題中,所以你是正確的道路。你可以根據Date()javascript對象找到很多教程。我建議你編輯你的問題來添加你嘗試過的一些html和js代碼。 – Asenar

+0

您可以使用javascript在客戶端網站上創建腳本,並將其與服務器同步,因此無法繞過它。 (將在時間將變爲零時檢查) – Tomer

回答

1

通常這種類型的 「倒計時」 之類的事情被處理的Javascript:

客戶端可以做這樣的事情:

function countdown(seconds) { 
    if(seconds > 0) { 
     alert(seconds + ' Seconds Left'); 
     setTimeout(function(){ 
      countdown(--seconds); 
     }, 1000); 
    } 
    else { 
     alert('Time out!'); 
    } 
} 

演示:http://jsfiddle.net/qwertynl/fn4MV/

+0

我想使用「return $ output;」而不是一個警告框。我該怎麼做呢?謝謝。 – Marius

+0

我相信你可以弄明白:-)我給你一塊墊腳石。 – qwertynl

+0

我想不出來..現在嘗試了很多東西。 – Marius

0

最好是使用JavaScript來處理這個在客戶端。

例如計數每用戶下降可能是如下,

JS

function printData(data){ 
    document.getElementById("countdown").innerText=data; 
} 

var timeInSecs = Date.now()/(1000*60); 
var howLong = 75; 
var untilTimeInSecs = timeInSecs+howLong; 
var countDownInterval = setInterval(function(){ 
    var timeLeft = untilTimeInSecs-timeInSecs;  
    printData(timeLeft); 
    untilTimeInSecs--; 

    if(timeLeft<=0){ 
     clearInterval(countDownInterval); 
    } 

},1000); 

HTML

<div id="countdown"></div> 

http://jsfiddle.net/zvsyu/2/

+0

你的'timeInSecs'變量不會做任何事情,因爲你無論如何都將它減掉了...... – qwertynl

+0

@qwertynl剛剛添加了這個來幫助我們的朋友在這裏看到他的代碼的相似之處。發佈的答案是如何實現倒計時的一個簡單例子。 – melc