jsBoon: Berechnung in JS

Hi @all,

ich programmiere einen Countdown, der eine vorgegebene Anzahl an Stunden/Min/Sek herunterzählt. Es soll die verbleibende Zeit sowie der Fortschritt in Prozent angezeigt werden.

Aber irgendwie scheint die Prozentanzeige nicht richtig zu funktionieren. Kann mir da jemand weiterhelfen? Der entsprechende Teil zur Berechnung der Prozentzahl ist im Code unter dem Kommentar "Prozentberechnung" zu finden.

Danke,

VG

jsBoon

<html>
<head>

<script language="JavaScript">

stunde=prompt("h","");
minute=prompt("m","");
sekunde=prompt("s","");

altesStartDatum=new Date();
zielDatum=new Date();
msZielDatum=zielDatum.getTime();

if(stunde!="") msZielDatum = msZielDatum  + stunde * 3600000;
if(minute!="")  msZielDatum = msZielDatum  + minute * 60000;
if(sekunde!="")  msZielDatum = msZielDatum  + 1 + sekunde * 1000;

zielDatum.setTime(msZielDatum);

function countdown() {  
	startDatum=new Date(); // Aktuelles Datum  
	// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist  
	if(startDatum<zielDatum)  {  

		var stunden=0, minuten=0, sekunden=0;  

		// Stunden  
		stunden=Math.floor((zielDatum-startDatum)/(60\*60\*1000));  
		startDatum.setTime(startDatum.getTime()+stunden\*60\*60\*1000);  

		// Minuten  
		minuten=Math.floor((zielDatum-startDatum)/(60\*1000));  
		startDatum.setTime(startDatum.getTime()+minuten\*60\*1000);  

		// Sekunden  
		sekunden=Math.floor((zielDatum-startDatum)/1000);  

		// Anzeige formatieren  

		stunden=stunden+"h ";  
		minuten=minuten+"m ";  
		if(sekunden<10) sekunden="0"+sekunden;  
		sekunden=sekunden+"s ";  

//Prozentberechnung

pStart=altesStartDatum.getTime();
pAkt=startDatum.getTime();
pZiel=zielDatum.getTime();
prozent= Math.round(((pAkt -pStart) *100) / (pZiel - pStart))+"%";

document.countdownform2.countdowninput2.value=stunden+minuten+sekunden;

document.countdownform.countdowninput.value=prozent;

setTimeout('countdown()',200);
}

}  

</script>
</head>

<body scroll="auto" onload="countdown()">
<form name="countdownform2"><p><input name="countdowninput2" style="border-width:0;margin-top:-30;" onfocus="if(this.blur)this.blur()"></p></form>
<form name="countdownform"><p><input name="countdowninput" style="border-width:0" onfocus="if(this.blur)this.blur()"></p></form>

</body>
<html>

  1. Grüße,
    unter Opera -> menu-> page ->developer tools-> Opera Dragonfly.
    lass den script schritt für schritt laufen und beobachte variablenwerte.
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth