Berechnung in JS
jsBoon
- javascript
0 bleicher
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>
Grüße,
unter Opera -> menu-> page ->developer tools-> Opera Dragonfly.
lass den script schritt für schritt laufen und beobachte variablenwerte.
MFG
bleicher