<a href=""></a> <a href="-online-5"></a> <a href="-couple-name-2378"></a> <a href=""></a> <a…
von:
<a href=""></a> <a href=""></a> <a href="-online-30"></a> <a href=""></a> <a href=""></a> <a…
von:
Hallo zusammen!
Ich habe im Netz ein Script für die Ausgabe der Echtzeit gefunden.
Nun möchte ich davor noch das aktuelle Datum setzen, wie kriege ich das hin?
Der Code:
[js]function clock() {
d=new Date();
t=d.getTime();
d.setTime(t);
hour = d.getHours(); if (hour<10) {hour = "0" + hour}
mint = d.getMinutes(); if (mint<10) {mint = "0" + mint}
sec = d.getSeconds(); if (sec<10) {sec = "0" + sec}
document.getElementById('clock').innerHTML = hour + ":" + mint + ":" + sec;
lauf = window.setTimeout('clock()', 1000);
}
function addEvent(obj, evType, fn) {
if(obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent('on'+evType, fn);
return r;
} else {
return false;
}
}[/js]
Danke im voraus
Ach komm. Das hast Du nicht selbst lösen können? Der Code ist doch ziemlich kurz, übersichtlich und einfach.
Wirf einen Blick die Doku zum JavaScript-Date-Objekt und bastle es Dir zusammen. Der Code enthält bereits alle notwendigen Teile, das ist primitives Copy&Paste&einbisschenanpassen.
Hallo Matthes!
Bei mir ist das mit der Logik so ein wenig das Problem, weshalb ich das irgendwie nicht so wirklich verstehe.
Aber ich hab mir da tatsächlich was zusammengebastelt bekommen, was funktioniert.
Kann man das noch optimieren??
[js]function clock() {
d=new Date();
t=d.getTime();
d.setTime(t);
wochentag = new Array(7);
wochentag[0]= "Sonntag";
wochentag[1] = "Montag";
wochentag[2] = "Dienstag";
wochentag[3] = "Mittwoch";
wochentag[4] = "Donnerstag";
wochentag[5] = "Freitag";
wochentag[6] = "Samstag";
n=wochentag[d.getDay()];
tag=d.getDate();
monat=d.getMonth()+1;
jahr=d.getFullYear();
hour = d.getHours(); if (hour<10) {hour = "0" + hour}
mint = d.getMinutes(); if (mint<10) {mint = "0" + mint}
sec = d.getSeconds(); if (sec<10) {sec = "0" + sec}
document.getElementById(\'clock\').innerHTML = n + ", " + tag + "." + monat + "." + jahr + " | " + hour + ":" + mint + ":" + sec;
lauf = window.setTimeout(\'clock()\', 1000);
}
function addEvent(obj, evType, fn) {
if(obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent(\'on\'+evType, fn);
return r;
} else {
return false;
}
}
addEvent(window,"load",clock);[/js]
Ich finde es großartig, wenn man es dann trotzdem selber schafft. Und das sollte man immer zuerst versuchen. Du lernst dabei und kommst voran.
Die Lösung ist gut. Allerdings war die Basis schon nicht optimal.
JavaScript bietet die Möglichkeit, toLocaleString(), damit wird das Datum direkt in eine lesbare Form gebracht. Man muss nur noch den Wochentag ergänzen.
Möchte man es aufteilen, so wie Du es gemacht hast, kann man auch toLocaleTimeString() und toLocaleDateString() verwenden.
Ungefähr so hätte ich es gemacht:
[html]
function clock() {
var d, datum, zeit, wochentag;
d = new Date();
datum = d.toLocaleDateString();
zeit = d.toLocaleTimeString();
wochentag = [\'Sonntag\', \'Montag\', \'Dienstag\', \'Mittwoch\',
\'Donnerstag\', \'Freitag\', \'Samstag\'];
document.getElementById(\'clock\').innerHTML =
wochentag[d.getDay()] + \', \'+datum + \' | \' +zeit;
window.setTimeout(function(){clock();}, 1000);
}
function addEvent(obj, evType, fn) {
if(obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent(\'on\'+evType, fn);
return r;
} else {
return false;
}
}
addEvent(window,\'load\',clock);
[/html]
Prinzipiell hätte ich mit setInterval gearbeitet und das DOM anders manipuliert, aber ich denke, so kann man es stehen lassen.
Beitrag erstellen
EinloggenKostenlos registrieren