Countdown mit Reloadsperre

Udem

Mitglied
Hallo,
ich habe momentan ein Countdown gebastelt, welcher nicht so ganz funktioniert.
Er zählt die Zahl runter bis 0 ist ja auch gut so, aber kann man das irgendwie so machen, dass auch wenn ich die Seite neulade, er immer noch auf der Zeit ist wo er vorhin war?
Ich möchte es so machen, dass genau um 12 Uhr der Counter los geht und 12:20 Uhr er aufhört, egal ob die Seite reloadet wurde oder nicht.

Mein Script brauche ich hier glaube ich nicht rein schreiben, da er nicht gut ist :/ .
 
Hi,

wenn die Start- und Endzeit bekannt ist, sollte es kein Problem sein, zu prüfen, ob der Zeitpunkt beim Aufruf der Seite innerhalb dieses Intervalls liegt. Ist die Prüfung erfolgreich, wird die Differenz zur Endzeit ermittelt und als Sekunden ausgegeben.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function initCountdown(){
  var intHour = 12;
  var intMinStart = 0;
  var intMinEnd  = 20;
  var objDate = new Date();
  if(((objDate.getHours()>=intHour)&&(objDate.getHours()<intHour+1)) && ((objDate.getMinutes()>=intMinStart)&&((objDate.getMinutes()<intMinEnd)))){
    Countdown(new Date(objDate.getFullYear(), objDate.getMonth(), objDate.getDate(), intHour, intMinEnd, 0).getTime());
  }
}
function Countdown(lngEnd){
  var lngDiff = Math.floor((lngEnd - (new Date().getTime()))/1000);
  document.getElementById("outID").innerHTML = lngDiff;
  if(lngDiff > 0)
    hTimer = window.setTimeout(function(){Countdown(lngEnd);}, 1000);
}

window.onload = function(){
  initCountdown();
}
 //-->
</script>
</head>
<body>
<div id="outID"></div>
</body>
</html>

Ciao
Quaese
 
@Quaese: Danke erst mal, aber wenn ich das auf meine Seite stelle, genau so wie geschrieben, zeigt er mir nichts an :/ .
 
Hi,

Quaeses kleine "Countdown mit Reloadsperre"-Vorführung läuft mittags von 12:00 bis 12:20.

Bis zum nächsten Vorstellungstermin können dem Zuschauer die herunterzuzählenden Sekunden angezeigt werden:
HTML:
<div id="outID">1200</div><!-- 20 * 60sec = 1200sec -->


mfg Maik
 
Achso danke, aber leider will ich das so haben, dass er jede 20 min. also um 12:00 - 12:20 die Sekunden runterzählt, dann noch mal von 12:20 - 12:40 und immer so weiter :/ ohne es manuell zu machen!
 
Zuletzt bearbeitet:
Hi,

der ganzzahlige Anteil bei der Division durch die Intervall-Länge multipliziert mit der Intervall-Länge liefert dir die "Endminuten". Damit kannst du den neuen Endzeitpunkt ermitteln.

Code:
function initCountdown(){
  var intIntervall = 20;               // Intervall in Minuten
  var objDate = new Date();

  // Ganzzahliger Anteil
  var intFaktor = Math.floor(objDate.getMinutes()/intIntervall);
  // "Endminuten"
  var intEndMin = (intFaktor+1)*intIntervall;
  // Neues Endzeitpunkt-Objekt erstellen und Countdown aufrufen
  Countdown(new Date(objDate.getFullYear(), objDate.getMonth(), objDate.getDate(), objDate.getHours(), intEndMin, 0).getTime());
}

function Countdown(lngEnd){
  var lngDiff = Math.floor((lngEnd - (new Date().getTime()))/1000);
  document.getElementById("outID").innerHTML = lngDiff;

  if(lngDiff > 0)  // Solange das aktuelle Intervall nicht verlassen wird
    hTimer = window.setTimeout(function(){Countdown(lngEnd);}, 1000);
  else  // Falls das aktuelle Intervall verlassen wird -> Intervall neu bestimmen
    initCountdown();
}

Ciao
Quaese
 
Hey cool Danke :D .
Ihr seid richtig gut dabei ;) .
Edit:// Sehe gerade, er gibt nichts aus o.O ?
 
Zuletzt bearbeitet:
Bei mir schon ;-)

Häng mal am Ende des Scripts diese Zeilen an:
Javascript:
window.onload = function(){
  initCountdown();
}

mfg Maik
 
Okay jetzt geht es :D , danke.

Edit: Wie könnte ich es jetzt machen, dass er auch die Minuten anrechnet also sagen wir:

00:10:24
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück