Datumproblem mit setTimeout

Shrek

Mitglied
Also ich hab eigentlich nur ein ganz einfaches Programm welches mir das aktuelle Datum mit Uhrzeit ausgibt. klappt auch soweit. Wenn ich jedoch durch einen setTimeout - Befehl die Function in der das Datumsprog sich befindet jede Sekunde neu anstoßen möchte baut er mir einen fehler. Ich sitze schon seit Stunden vor dem Problem und weiß einfach nicht woran es liegt. Es müsste meiner Ansicht klappen. Es klappt weder im IE noch im Firefox. Das Problem tritt im IE erst auf nachdem die 1 Sekunde Zeitintevall mit setTimeout abgelaufen sind. aber ich rufe dadurch doch nur eine einfache Funktion auf. Hoffe ihr könnt mir helfen.

Code:
<html>

<head>
  <title></title>
<script language="JavaScript" type="text/javascript">
function start()
{
var Wochentagg = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");

var zeit = new Date();
var tag = zeit.getDate();
var wochentag = zeit.getDay();
var jahr = zeit.getFullYear();
var monat = zeit.getMonth();
var stunden = zeit.getHours();
var minuten = zeit.getMinutes();
var sekunden = zeit.getSeconds();

document.write(Wochentagg[wochentag] + " den " + tag + "." + monat + "." + jahr + " um " + stunden + ":" + minuten + ":" + sekunden );

setTimeout("start()", 1000 );
}
</script>

</head>

<body onload=start()>

</body>

</html>
 
Wenn du write() nach vollzogenem Laden eines Dokumentes....dies ist bei der dir Fall.....ausfürhrst, wird der Inhalt des Dokumentes überschrieben.
Beim zweiten Versuch wird eine Funktion zu starten versucht, welche nicht mehr existiert....denn in deinem Dokument steht nun nur noch das, was du beim ersten Aufruf hineingeschrieben hast....alles andere ist weg.
 
Hi,

tja, da ist mir Fatalus mal wieder zuvor gekommen... ;)

eine funktionierende Alternative wäre, den Inhalt eines DIV-Elementes mit dem Datum zu füllen:
PHP:
<script language="JavaScript" type="text/javascript">
function start()
{
var Wochentagg = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
var zeit = new Date();
var tag = zeit.getDate();
var wochentag = zeit.getDay();
var jahr = zeit.getFullYear();
var monat = zeit.getMonth();
var stunden = zeit.getHours();
var minuten = zeit.getMinutes();
var sekunden = zeit.getSeconds();
document.getElementById("Layer1").innerHTML=(Wochentagg[wochentag] + " den " + tag + "." + monat + "." + jahr + " um " + stunden + ":" + minuten + ":" + sekunden );
setTimeout("start()", 1000 );
}
</script>
</head>
<body onload="start()">
<div id="Layer1">test</div>
</body>

Gruß
 

Neue Beiträge

Zurück