2009-08-07 14 views
0

Mein Projekt in PHPCountdown-Timer

Ich möchte die Frage stellt in begrenztem Zeitrahmen wie LMS einen Countdown-Timer erstellen hier i den Javascript-Countdown-Timer verwenden, aber wenn die Seite aktualisiert Javascript-Timer zurückgesetzt.

Antwort

0

Sie könnten den Timer auch in einer Session-Variablen in PHP speichern, so dass die Zeit beim Aktualisieren der Seite erhalten bleibt.

3

Sie könnten die Startzeit in einer PHP-Sitzung speichern. Dann, jedes Mal, wenn Sie eine Seite laden, können Sie den Countdown-Timer mit Javascript fortsetzen, z.

<?php 
//on every page 
session_start(); 

//when you start 
$_SESSION['start_time'] = time(); 

Dann auf jeder Seite:

<script type="text/javascript"> 
    var startTime = <?php echo $_SESSION['start_time']; ?>; 
    //calculate remaining time 
</script> 

Sie müssen beachten, wenn die Zeitzonen unterschiedlich sind, oder wenn die Uhr des Client falsch ist. Vielleicht stattdessen könnten Sie die verbleibende Zeit in Sekunden berechnen und dass in Javascript auf jeder Seite drucken, aber dann könnte man innacuracy über Verbindungen mit hoher Latenz usw.

1

Probieren Sie etwas wie haben:

<?php 
    session_start(); 

    //to reset the saved countdown 
    if (!empty($_REQUEST['resetCountdown'])) 
    { 
     unset($_SESSION['startTime']); 
    } 

    if (empty($_SESSION['startTime'])) 
    { 
     $_SESSION['startTime'] = time(); 
    } 

    //In seconds 
    $startTime = time() - $_SESSION['startTime']; 
?> 
<script type="text/javascript"> 
var countdown = 60; //in seconds 
var startTime = <?php echo $startTime; ?>; 

startCountdown(startTime, countdown); 

function startCountdown(startFrom, duration) 
{ 
    //countdown implementation 
} 
</script> 
0

versuchen, diese

<script> 
// Set the date we're counting down to 
var countDownDate = new Date("Aug 1, 2017 12:00:00").getTime(); 

// Update the count down every 1 second 
var x = setInterval(function() { 

    // Get todays date and time 
    var now = new Date().getTime(); 

    // Find the distance between now an the count down date 
    var distance = countDownDate - now; 

    // Time calculations for days, hours, minutes and seconds 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 

    // Output the result in an element with id="demo" 

    document.getElementById("demo").innerHTML = days + "d " + hours + "h " 
    + minutes + "m " + seconds + "s "; 


    // If the count down is over, write some text 
    if (distance < 0) { 
     clearInterval(x); 
     document.getElementById("demo").innerHTML = "EXPIRED"; 
    } 
}, 1000); 
</script> 

und auch dies unter body-Tag setzen.

<p id="demo"></p> 
Verwandte Themen