Ich habe ein PHP-Skript, das einer SQL-DB wie folgt Zeit hinzufügt:

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

Um meinen Benutzern zu zeigen, wie lange sie warten müssen, habe ich Folgendes:

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

Die obige Funktion ist:

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

Es funktioniert gut, aber ich möchte, dass es ein dynamischer Countdown ist. (Automatisches Herunterzählen, ohne die Site zu aktualisieren) Mein Problem hier ist, dass ich "time ()" und keinen reinen Text verwende (z. B. 21/11/2013 20:00).

-1
Marius 21 Nov. 2013 im 18:55

3 Antworten

Beste Antwort

Normalerweise wird diese Art von "Countdown" -ähnlichem Ding von Javascript behandelt:

Auf der Client Seite können Sie Folgendes tun:

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

Demo: http://jsfiddle.net/qwertynl/fn4MV/

1
qwertynl 21 Nov. 2013 im 14:58

Es ist besser, dies auf der Clientseite mit Javascript zu handhaben.

Zum Beispiel könnte ein Countdown pro Benutzer wie folgt sein:

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
melc 21 Nov. 2013 im 15:37

Sie benötigen Javascript. Wenn Sie die Anzahl der Sekunden für den Countdown haben, benötigen Sie nur ein setInterval:

Weitere Informationen: http://www.w3schools.com/js/js_timing.asp

-1
Cyrus 21 Nov. 2013 im 14:59