Moin moin,
ich habe im Internet nach einem fertigen Skript gesucht, das beim Aufruf der Seite anfängt hochzuzählen und somit in Stunden, Minuten und Sekunden die "Besuchsdauer" auf der Seite anzuzeigen.
Dazu kommt erstmal folgendes in den body:
und beim Seitenaufruf wird der "Timestamp" (Wenn man das bei JavaScript so nennt, ich habe bisher was die Zeitfunktionen etc angeht nur mit PHP gearbeitet) in eine Variable gespeichert:
Die Funktion dauer() sieht so aus:
Was das Ganze macht ist mir schon klar, und zwar wird die Funktion in einem Intervall von 1 Sekunden aufgerufen und diese ermittelt den zeitlichen Abstand zwischen des Timestamps, der beim Aufruf der Seite gespeichert wurde und dem des aktuellen Timestamps (sprich dem, der beim Aufruf der Funktion ermittelt wird).
Das Ganze wird dann als Stunden, Minuten und Sekunden in meinem <span> mit der id="timer" angezeigt.
Was ich jetzt aber brauche sind zwei Dinge:
- Einmal möchte ich, dass der Timer erst nach einem bestimmten Ereignis anfängt
- und zum Anderen möchte ich, dass man die Möglichkeit hat den Timer beliebig anzuhalten und wieder fortzusetzen.
Bei letzterem habe ich gar keine Ahnung wie ich das lösen soll und bei ersterem habe ich das im Moment so "gelöst", dass ich beim Aufruf der Seite die Variable "eintritt" auf irgendwas setze, also z.B.
Und wenn jetzt mein Ereignis stattfindet, setzt diese Funktion die Variable eintritt erst auf den Timestamp, so fängt der Counter auch erst dann an zu zählen - so lange wird die ganze Zeit zwar "NaN" oder sowas angezeigt (mehrfach hintereinander), aber das ist nicht schlimm, weil der div in dem das angezeigt wird sowieso so lange bis das Ereignis eintritt verdeckt bleibt.
Mir ist allerdings klar, dass das eine recht unschöne Lösung ist, darum hoffe ich auch diesbezüglich auf Tips von euch, wobei mir aber erstmal wichtiger ist, dass man den Timer pausieren und wieder laufenlassen kann (wenn ich das weiss, würde es ja auch reichen den Timer beim Seitenaufruf direkt zu pausieren, somit würde das auch das andere Problem mit lösen, denk ich mal...)
Ich hoffe dann mal, dass ihr mir dabei helfen könnt und
mfG.
ich habe im Internet nach einem fertigen Skript gesucht, das beim Aufruf der Seite anfängt hochzuzählen und somit in Stunden, Minuten und Sekunden die "Besuchsdauer" auf der Seite anzuzeigen.
Dazu kommt erstmal folgendes in den body:
Code:
<body onload="window.setInterval('dauer()',1000)">
Code:
eintritt = new Date();
Code:
function dauer() { jetzt = new Date(); b = new Date(jetzt-eintritt); c = (b.getHours()-1)+''; if(c.length == 1){c = '0'+c;} d = (b.getMinutes())+''; if(d.length == 1){d = '0'+d;} e = (b.getSeconds())+''; if(e.length == 1){e = '0'+e;} zeit = c+':'+d+':'+e; document.getElementById('timer').innerHTML = zeit; }
Das Ganze wird dann als Stunden, Minuten und Sekunden in meinem <span> mit der id="timer" angezeigt.
Was ich jetzt aber brauche sind zwei Dinge:
- Einmal möchte ich, dass der Timer erst nach einem bestimmten Ereignis anfängt
- und zum Anderen möchte ich, dass man die Möglichkeit hat den Timer beliebig anzuhalten und wieder fortzusetzen.
Bei letzterem habe ich gar keine Ahnung wie ich das lösen soll und bei ersterem habe ich das im Moment so "gelöst", dass ich beim Aufruf der Seite die Variable "eintritt" auf irgendwas setze, also z.B.
Code:
eintritt = "irgendwas";
Mir ist allerdings klar, dass das eine recht unschöne Lösung ist, darum hoffe ich auch diesbezüglich auf Tips von euch, wobei mir aber erstmal wichtiger ist, dass man den Timer pausieren und wieder laufenlassen kann (wenn ich das weiss, würde es ja auch reichen den Timer beim Seitenaufruf direkt zu pausieren, somit würde das auch das andere Problem mit lösen, denk ich mal...)
Ich hoffe dann mal, dass ihr mir dabei helfen könnt und
mfG.
Kommentar