Aufenthaltsdauer zählen geht nicht richtig....
mymaster
- javascript
Hallo,
Ich habe auf meine sEITE EINEN aUFENTHALTS ZÄHLER WIE IN SELFHTML BESCHRIEBEN eingebaut.
Das problem ist nur: nach einer Secunde werden sowohl die Secunden
als auch die Minuten um eins weitergesetzt....
Das sieht dann so aus 00.00 01.01 02.02
Was hab ich falsch gemacht?
Der verwendete code ist:
<html>
<head>
<title>StopUhr</title>
<script type="text/javascript">
<!--
var Jetzt = new Date();
var Start = Jetzt.getTime();
function ZeitAnzeigen() {
var absSekunden = Math.round(ZeitBerechnen());
var relSekunden = absSekunden % 60;
var absMinuten = Math.abs(Math.round(absSekunden-30/60));
var anzSekunden ="" + ((relSekunden > 9) ? relSekunden : "0" + relSekunden);
var anzMinuten ="" + ((absMinuten > 9) ? absMinuten : "0" + absMinuten);
window.document.Anzeige.Zeit.value = anzMinuten + ":" + anzSekunden;
window.setTimeout('ZeitAnzeigen()',1000);
}
function ZeitBerechnen() {
var Immernoch = new Date();
return((Immernoch.getTime() - Start)/1000);
}
// -->
</script>
</head>
<body bgcolor="#EEEEEE" text="#000000" onLoad="window.setTimeout('ZeitAnzeigen()',1000)">
<form name="Anzeige" action="">
<input size="7" name="Zeit" value="00:00">
</form>
</body>
</html>
Danke schonmal im vorraus!
gruß,
mymaster
Du hast dich mit den Klammern vertan, und zwar in dieser Zeile:
v
var absMinuten = Math.abs(Math.round(absSekunden-30/60));
Es muss natürlich so ausschauen:
var absMinuten = Math.abs(Math.round((absSekunden-30)/60));
Hoffe das behebt dein Problem
Danke für die schnelle Antwort, aber jetzt geht die stopuhr
gar nicht mehr, will sagen sie bleibt auf 00:00
stehen....
Der jetzige code ist:
<html>
<head>
<title>StopUhr</title>
<script type="text/javascript">
<!--
var Jetzt = new Date();
var Start = Jetzt.getTime();
function ZeitAnzeigen() {
var absSekunden = Math.round(ZeitBerechnen());
var relSekunden = absSekunden % 60;
var absMinuten = Math.abs(Math.round((absSekunden-30/60));
var anzSekunden ="" + ((relSekunden > 9) ? relSekunden : "0" + relSekunden);
var anzMinuten ="" + ((absMinuten > 9) ? absMinuten : "0" + absMinuten);
window.document.Anzeige.Zeit.value = anzMinuten + ":" + anzSekunden;
window.setTimeout('ZeitAnzeigen()',1000);
}
function ZeitBerechnen() {
var Immernoch = new Date();
return((Immernoch.getTime() - Start)/1000);
}
// -->
</script>
</head>
<body bgcolor="#400040" text="#FFFFFF" onLoad="window.setTimeout('ZeitAnzeigen()',1000)">
<form name="Anzeige" action="">
<input size="7" name="Zeit" value="00:00">
</form>
</body>
</html>
Vielen Dank schonmal im vorraus!
@frantz danke für deine Mühe, aber es funktioniert nicht....
Gruß, mymaster
Vielleicht liegt das ja daran, dass du jetzt in der korrigierten Zeile eine schließende Klammer zu wenig hast.
var absMinuten = Math.abs(Math.round((absSekunden-30/60));
^^
Ersetz diese Zeile doch einfach mit
var absMinuten = Math.abs(Math.round((absSekunden-30)/60));
Hat dir dein Browser da keine Fehlermeldung gezeigt?
Oder noch besser verwende diese Zeile
var absMinuten = Math.abs(Math.floor(absSekunden/60));
Ist am unkompliziertesten.
Dabke!
Jetzt funktionierts!
Vielen dank!