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.
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.
Sie könnten den Timer auch in einer Session-Variablen in PHP speichern, so dass die Zeit beim Aktualisieren der Seite erhalten bleibt.
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.
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>
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>