Countdown in 1 Std und 30 min

IGOR72

Grünschnabel
Hi@all

Ich murks jetzt schon einige Zeit an nem Countdown, der beginnend von jetzt an in 1 Std und 30 min abläuft.
Ich krieg des einfach nicht hin. Countdowns zu einem vorgegbenen Zeitpunkt is kein Prob. Aber wie kann ich mein Script umschreiben, das die Zeit in 1,5 Std. abläuft?
Code:
<html> 
<head> 
<title>CountDown-Script</title>
<script language="JavaScript" type="text/javascript">

function CountDown() {
	var Tsecond = 30; // Zielsekunden
	var Tminute = 30; // Zielminuten
	var Thour = 14; // Zielstunden
	var Tday = 16; // Zieltag
	var Tmonth = 3; // Zielmonat
	var Tyear = 2005; // Zieljahr
	var howlong = "";
	
	var target = new Date(Tyear, Tmonth-1, Tday, Thour, Tminute, Tsecond);
	target = target.getTime();
	var now = new Date();
	now = now.getTime();
	var diff = target - now;
	
	var years = (diff - (diff % 31557600000)) / 31557600000;
	diff = diff - (years * 31557600000); 
	var months = (diff - (diff % 2628000000)) / 2628000000; 
	diff = diff - (months * 2628000000); 
        var days = (diff - (diff % 86400000)) / 86400000;
	diff = diff - (days * 86400000); 
	var hours = (diff - (diff % 3600000)) / 3600000;
	diff = diff - (hours * 3600000);
	var minutes = (diff - (diff % 60000)) / 60000;
	diff = diff - (minutes * 60000);
	var seconds = (diff - (diff % 1000)) / 1000;
	
	if(seconds > -1) {
	    if (years != 0) 
		{
        	howlong = years+" Jahr"; 
		    if (years > 1) howlong = howlong+"e";
		}
		if (months != 0) 
		{
        	howlong = howlong + " " + months+" Monat"; 
		    if (months > 1) howlong = howlong + "e";
		}
		if (days != 0) 
		{
        	howlong = howlong + " " + days+" Tag"; 
		    if (days > 1) howlong = howlong + "e";
		}
		if (hours != 0) 
		{
        	howlong = howlong + " " + hours+" Stunde"; 
		    if (hours > 1) howlong = howlong + "n";
		}
		if (minutes != 0) 
		{
        	howlong = howlong + " " + minutes+" Minute"; 
		    if (minutes > 1) howlong = howlong + "n";
		}
		if (seconds != 0) 
		{
        	howlong = howlong + " " + seconds+" Sekunde"; 
		    if (seconds > 1) howlong = howlong + "n";
		}
	    setTimeout("CountDown()",1000);
	} else {
	    howlong = "Ziel erreicht!";
	}
	
	document.CountDown.diff.value = howlong;
}
</script>
</head> 
<body onLoad="CountDown()"> 
<form name="CountDown"><table width="450" border="1" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100">Ziel erreicht in:</td>
    <td><div align="center">
      <input type="text" name="diff" size="50">
    </div></td>
  </tr>
</table>
</form> 
</body> 
</html>

ICh hoffe mir kann da geholfen werden.

LG IGOR72
 
Hi,

ermittel die Anzahl der Sekunden, die 1,5 Stunden enthält. Davon ausgehend berechnest du
Stunden, Minuten und Sekunden. Nachdem die Restzeit ausgegeben wurde, rufst du die
Funktion zeitverzögert nach einer Sekunde wieder auf.

Gestartet wird die Funktion im onload-Event des BODYs. Die Restzeit wird in einem DIV
mit der ID timeID ausgegeben.
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript">
<!--
// Anzahl Sekunden in 1,5 Stunden (1,5*60*60)
var intStart = 5400;

function countdown(){
  var intSekunden = intStart;

  // Stunden, Minuten und Sekunden berechnen und formatieren
  var intStunden = Math.floor(intSekunden/3600);
  intSekunden = intSekunden - intStunden*3600;
  intStunden = (intStunden < 10) ? ("0"+intStunden) : intStunden;

  var intMinuten = Math.floor(intSekunden/60);
  intMinuten = (intMinuten < 10) ? ("0"+intMinuten) : intMinuten;
  intSekunden = intSekunden - intMinuten*60;

  intSekunden = (intSekunden < 10) ? ("0"+intSekunden) : intSekunden;

  // Restzeit ausgeben
  document.getElementById("timeID").innerHTML = (intStunden + ":" + intMinuten + ":" + intSekunden);
  // Sekunden inkrementieren
  intStart--;

  // Fall der Countdown noch nicht abgelaufen ist
  if(intStart >= 0)
    // Funktion erneut aufrufen
    window.setTimeout("countdown()", 1000);
}
// -->
</script>
</head>
<body onload="countdown();">
<div id="timeID"></div>
</body>
</html>
Ciao
Quaese
 
Hi Qauaese

Danke für Deine Antwort und das Script. Leider is es nicht das, was ich wirklich will. Jo, es wird die Zeit runtergezählt, aber wenn ich die seite aktualisiere, beginnt der Countdown von vorne (also wieder bei 1,5 Std.). Ich wollte aber, das die 1,5 Std runtergezählt werden egal wie oft ich die Seite wechsle oder neu aufrufe. Naja werd ich mal weiter tüfteln um nen Weg zu finden.

LG IGOR72
 
Dann musste halt einfach die Variable intStart auf einen anderen wert setzten, der zb von der jetzigen Uhrzeit abhängt :rolleyes:
 

Neue Beiträge

Zurück