mymaster: Aufenthaltsdauer zählen geht nicht richtig....

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

  1. 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

    1. 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

      1. 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?

        1. Oder noch besser verwende diese Zeile

          var absMinuten = Math.abs(Math.floor(absSekunden/60));

          Ist am unkompliziertesten.

          1. Dabke!
            Jetzt funktionierts!
            Vielen dank!