La minuterie JavaScript ne se met pas à jour toutes les secondes
P粉340980243
P粉340980243 2024-04-02 19:04:44
0
1
366

C'est mon code pour afficher un compte à rebours pour otp, mais il n'affiche que des valeurs statiques et ne se met pas à jour toutes les secondes comme prévu.

<?php 
// Set the target end time (in this example, 10 minutes from now) 
$endTime = time() + (10 * 60);  
 
// Calculate the remaining time 
$remainingTime = $endTime - time(); 
 
// Display the remaining time 
echo "<span id='countdown'></span>"; 
 
?> 
 
<script> 
// Display the remaining time in minutes and seconds 
function displayCountdown() { 
  var remainingTime = <?php echo $remainingTime; ?>; 
  var minutes = Math.floor(remainingTime / 60); 
  var seconds = remainingTime - (minutes * 60); 
  document.getElementById("countdown").innerHTML = minutes + "m " + seconds + "s"; 
  remainingTime--; 
  if (remainingTime < 0) { 
    clearInterval(interval); 
    document.getElementById("countdown").innerHTML = "Time's up!"; 
  } 
} 
var interval = setInterval(displayCountdown, 1000); 
</script>

Veuillez souligner ce qui me manque.

P粉340980243
P粉340980243

répondre à tous(1)
P粉376738875

N'oubliez pas que le code PHP est exécuté sur le serveur - et n'a aucun impact sur l'exécution de JS ("browser time"). Votre fonction JS ressemble en fait à ceci :

sssccc

Ici, le problème est immédiatement visible : vous n'exécutez qu'une seule displayCountdown 函数期间递减 remainingTime 。下次调用时,该值再次为 600 - 因为 remainingTime variable locale.

La solution la plus simple consiste donc à déplacer cette variable en dehors de la plage displayCountdown, comme ceci :

sssccc
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!