Hallo miteinander. Ich probiere mich seit geraumer Zeit mit einem kleinen Timer der die abgelaufene Zeit anzeigt. Bei dem Timer kann man eine eine Startzeit in HH:MM:SS vorgeben und diese wird dann von der Aktuellen Uhrzeit an nach oben gezählt. Soweit Funktioniert das ganze auch bis auf die Tatsache das ich bei der Funktion den Fehler habe das er immer wieder die Startzeit berechnet so passiert es das er mitten drin nicht hoch zählt sondern einen negativen Wert zeigt und diesen dann bis 0 hoch zählt.
So zählt er richtig:

aber sobald er die zb. Sekunden der Startzeit erreicht hat macht er einen minus Wert daraus:

Meine Frage dazu :
Wie kann ich zb. intSekunde sagen das es sich nur einmal aus intSekunde_ - StartSekunde berechnen soll und danach der Wert Statisch bleibt.
Derzeit, wenn ich das richtig verstanden habe, ist es ja so das es bei jedem durchlauf sich neu berechnet.
So zählt er richtig:

aber sobald er die zb. Sekunden der Startzeit erreicht hat macht er einen minus Wert daraus:

Meine Frage dazu :
Wie kann ich zb. intSekunde sagen das es sich nur einmal aus intSekunde_ - StartSekunde berechnen soll und danach der Wert Statisch bleibt.
Derzeit, wenn ich das richtig verstanden habe, ist es ja so das es bei jedem durchlauf sich neu berechnet.
Code:
function tick() { var stunde, minute, sekunde; var intStunde, intMinute, intSekunde; var jetzt = new Date(); var intStunde_ = jetzt.getHours(); var intMinute_ = jetzt.getMinutes(); var intSekunde_ = jetzt.getSeconds(); var intMilliSekunde_ = jetzt.getMilliseconds(); var intTag_ = jetzt.getDate(); var intMonat_ = jetzt.getMonth()+1; var intJahr_ = jetzt.getFullYear(); var intTag = (intTag_ - StartTag); var intStunde = (intStunde_ - StartStunde); var intMinute = (intMinute_ - StartMinute); var intSekunde = (intSekunde_ - StartSekunde); if (intTag_ < 0) { intTag = 24-(intTag * -1); } if (intStunde_ < 0) { intStunde = 24-(intStunde * -1); intTag = intTag -1; } if (intMinute_ < 0) { intMinute = 60-(intMinute * -1); intStunde = intStunde -1; } if (intSekunde_ < 0) { intSekunde = 60-(intSekunde * -1); intMinute = intMinute -1; } /*------- wenn wert nur einstellig dann stelle 0 vorran ------------------*/ if (intStunde < 10) { stunde = '0'+intStunde; } else { stunde = intStunde; } if (intMinute < 10) { minute = '0'+intMinute; } else { minute = intMinute; } if (intSekunde < 10) { sekunde = '0'+intSekunde; } else { sekunde = intSekunde; } timeString = intTag+":"+stunde+":"+minute+":"+sekunde; Clock.innerHTML=timeString; window.setTimeout('tick();', 1000); } window.onload = tick;
Kommentar