Marcus
Avatar Marcus
Themenersteller
Guru (224 Beiträge)

Datum und Echtzeit ausgeben

am 17.05.2015, 16:58 Uhr eröffnete Marcus folgenden Thread
AJAX & JavaScript (JS)    1748 mal gelesen    3 Antwort(en).

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


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 17.05.2015, 19:36 Uhr schrieb matthes

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!

Marcus
Avatar Marcus
Guru (224 Beiträge)
am 17.05.2015, 22:02 Uhr schrieb Marcus

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]


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

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

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!

  • 1


« zurück zu: AJAX & JavaScript (JS)

Das Seitenreport Forum hat aktuell 5273 Themen und 36107 Beiträge.
Insgesamt sind 48345 Mitglieder registriert.