Zum Inhalt springen
ThreadAJAX & JavaScript (JS)

Datum und Echtzeit ausgeben

Kategorie
AJAX & JavaScript (JS)
Gelesen
1748
Antworten
3
Erstellt von: gelöschter Benutzer Datum: 17.05.2015, 16:58 Uhr
Archiv-KommentarArchiviert, nicht priorisiertPerformance & Technik

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.

Zur Kategorie
gelöschter Benutzer
Threadstart · AJAX & JavaScript (JS) 1748 mal gelesen · 17.05.2015, 16:58 Uhr

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äge
Foren Moderator Evil Genius Content Halbgott (973 Beiträge)
am 17.05.2015, 19:36 Uhr schrieb matthes
Antwort

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.


Make Seitenreport great again!
gelöschter Benutzer
am 17.05.2015, 22:02 Uhr schrieb
Antwort

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]

Foren Moderator Evil Genius Content Halbgott (973 Beiträge)
am 17.05.2015, 23:50 Uhr schrieb matthes
Antwort

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!