Datum und Echtzeit ausgeben
Redaktionelle Einordnung
Diese archivierte Diskussion behandelt Datum und Echtzeit ausgeben aus Sicht der Rubrik AJAX & JavaScript.
Technische Performance sollte heute mit Core Web Vitals, Renderbarkeit und realer Nutzererfahrung bewertet werden, nicht nur mit historischen Einzelmetriken.
Sinnvoll nutzbar bleibt der Thread vor allem als historischer Kontext, für typische Fragestellungen und zur Einordnung älterer Empfehlungen.
Startbeitrag
Originaler Foreninhalt in modernisierter Darstellung.
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
Antworten
3 BeiträgeAch 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.
Make Seitenreport great again!
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.
Make Seitenreport great again!