2009-08-07 12 views
0

Mon projet en phpCompte à rebours

Je veux créer un compte à rebours pour poser la question en temps limité comme LMS ici, j'ai utiliser le compte à rebours javascript mais quand rafraîchir la page javascript temps sont remis.

Répondre

0

Vous pouvez également stocker le minuteur dans une variable de session en PHP de sorte que lorsque la page est actualisée, l'heure est toujours conservée.

3

Vous pouvez stocker l'heure de début dans une session php. Ensuite, chaque fois que vous chargez une page, vous pouvez continuer le compte à rebours avec javascript, par ex.

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

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

Puis sur chaque page:

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

Vous aurez besoin de regarder quand les fuseaux horaires sont différents, ou lorsque l'horloge du client est erroné. Peut-être au contraire, vous pouvez calculer le temps restant en quelques secondes et imprimer cela en javascript sur chaque page, mais vous pouvez alors innacuracy sur des connexions à latence élevée, etc.

1

Essayez quelque chose comme:

<?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

essayer cette

<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> 

et de mettre aussi cette étiquette de corps.

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