Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Aktuelle Zeit





Frage

Hi zusammen Habe ein kleines Problem (klar, sonst würde ich mich ja nicht melden). Ich habe folgenden Quelltext zusammengestellt, obwohl ich nichts davon verstehe. Es funktioniert auch. Nur hätte ich gerne, dass: 1. Dir Schrift "Arial" ist und kursiv dargestellt wird 2. Die Minuten immer weiter laufen, also das immer die aktuelle Zeit angezeigt wird. Ist dies möglich? [code]<script type="text/javascript"> var jetzt = new Date(); var Tag = jetzt.getDate(); var jetzt = new Date(); var Jahresmonat = jetzt.getMonth(); var jetzt = new Date(); var Jahr = jetzt.getYear(); var jetzt = new Date(); var Std = jetzt.getHours(); var jetzt = new Date(); var Min = jetzt.getMinutes(); document.write(´<table border=0 bgcolor="#ffffff"><tr><td><font size="2" face="Arial CE">´); var Monat = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); document.write(´<table border=0 bgcolor="ffffff"><tr><td>´); if (Jahr < 999) Jahr += 1900; document.write(Tag + "" + Monat[Jahresmonat] + "" + Jahr + "-" + Std + ":"+ Min +"<\/td><\/tr><\/table>"); </script>[/code] Gruss axe

Antwort 1 von rfb

ja,
1. natürlich per CSS
2. durch Nutzen des DOM (vergiss document.write) und window.setInterval

<html>
<head>
<style type="text/css">
#uhr { font-family:arial;background:#fff;font-style:italic; }
</style>
<script type="text/javascript">
function uhr() {
var jetzt = new Date();
var Tag = jetzt.getDate();
var jetzt = new Date();
var Jahresmonat = jetzt.getMonth();
var jetzt = new Date();
var Jahr = jetzt.getFullYear()
var jetzt = new Date();
var Std = jetzt.getHours();
var jetzt = new Date();
var Min = jetzt.getMinutes();
var Monat = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
document.getElementById("uhr").firstChild.data=Tag + "" + Monat[Jahresmonat] + "" + Jahr + "-" + Std + ":"+ Min;
}
</script>
</head>
<body onload="window.setInterval(´uhr()´,30000)">
<table border=0><tr><td id="uhr">hier kommt die Zeit</td></tr></table>
</body>
</html>


Die Tabelle steht schon im HTML, das Ausgabefeld hat die id uhr
nach dem Seitenladen wird mit setInterval alle 30sec die Funktion uhr aufgerufen
diese ändert den Inhalt des Elements mit der id uhr

PS: es gibt inzwischen die Funktion getFullYear, die Umrechnung mit +1900 ist dadurch unnötig.

Antwort 2 von axe

Mag sein, das ich blöde bin, aber nun erscheint ja nur der Text "hier kommt die Zeit"?!

Antwort 3 von axe

aha - sie erscheint erst nach 30 Sekunden. Kann man das auch beim Laden machen?

Antwort 4 von rfb

klar, diese kleine Änderung:
<body onload="uhr();window.setInterval(´uhr()´,30000)">


Antwort 5 von axe

Eigentlich klar - wenn man studieren würde. Vielen herzlichen Dank :)

Gruss
axe

Antwort 6 von axe

Halli Hallo

Leider fehlt bei der Min. Angabe eine "0", wenn es 19.06 ist zeigt es 19.6 an. Kann man das noch ändern?

Und wie bringe ich es folgend hin:
Mittwoch, 15. Februar 2006 19:05

<html>
<head>
<style type="text/css">
#uhr { font-family:arial;background:#fff;font-style:italic;font-size:12 }
</style>
<script type="text/javascript">
function uhr() {
var jetzt = new Date();
var Tag = jetzt.getDate();
var jetzt = new Date();
var Jahresmonat = jetzt.getMonth();
var jetzt = new Date();
var Jahr = jetzt.getFullYear()
var jetzt = new Date();
var Std = jetzt.getHours();
var jetzt = new Date();
var Min = jetzt.getMinutes();
var Monat = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
document.getElementById("uhr").firstChild.data=Tag + "." + Monat[Jahresmonat] + " " + Jahr + " - " + Std + ":"+ Min;
}
</script>
</head>
<body onload="uhr();window.setInterval(´uhr()´,30000)">  
<table border=0><tr><td id="uhr">hier kommt die Zeit</td></tr></table>
</body>
</html> 


Gruss
axe

Antwort 7 von rfb

<html>
<head>
<style type="text/css">
#uhr { font-family:arial;background:#fff;font-style:italic;font-size:12 }
</style>
<script type="text/javascript">
function uhr() {
var jetzt = new Date();
var Tag = jetzt.getDate();
var jetzt = new Date();
var Jahresmonat = jetzt.getMonth();
var jetzt = new Date();
var Jahr = jetzt.getFullYear()
var jetzt = new Date();
var Std = jetzt.getHours();
var jetzt = new Date();
var Min = jetzt.getMinutes();
Min=(Min<10)?"0"+Min:Min;
var wochentag = jetzt.getDay();
var tage = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Sonnabend");

var Monat = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
document.getElementById("uhr").firstChild.data=tage[wochentag]+", "+Tag + ". " + Monat[Jahresmonat] + " " + Jahr + " " + Std + ":"+ Min;
}
</script>
</head>
<body onload="uhr();window.setInterval(´uhr()´,30000)">
<table border=0><tr><td id="uhr">hier kommt die Zeit</td></tr></table>
</body>
</html>

Antwort 8 von rfb

fällt mir gerade auf: so langsam ist JavaScript nun auch wieder nicht, dass du innerhalb der Funktion dauernd die Date-Funktion bemühen musst, aus:

var jetzt = new Date();
var Tag = jetzt.getDate();
var jetzt = new Date();
var Jahresmonat = jetzt.getMonth();
var jetzt = new Date();
var Jahr = jetzt.getFullYear()
var jetzt = new Date();
var Std = jetzt.getHours();
var jetzt = new Date();
var Min = jetzt.getMinutes();

wird damit:

var jetzt = new Date(); 
var Tag = jetzt.getDate(); 
var Jahresmonat = jetzt.getMonth(); 
var Jahr = jetzt.getFullYear() 
var Std = jetzt.getHours(); 
var Min = jetzt.getMinutes();


Antwort 9 von axe

aha - dann ist also die variabel "newDate();" in JS nur einmal nötig? Kann man das verallgemeinern oder trifft das nur auf dieses Scrip zu?

Danke und Gruss
axe

Antwort 10 von rfb

mit
jetzt=new Date()
lädst du die aktuelle Zeit in die variable jetzt und kannst dann die verschiedenen Details (Wochentag, Sekunden, etc) daraus abrufen.
Schon nach einer Millisekunde würde
jetzt 
etwas anderes enthalten. Für dein Script macht das aber nix, da dich Millisecs. nicht interessieren und das Script schnell genug abgearbeitet wird (Bruchteile einer Sekunde sollten auf einem normalen Rechner dafür reichen), selbst eine zusätzliche Sekunden-Ausgabe wäre noch genau genug.

Antwort 11 von axe

Aha - nun verstehe ich auch das.
Vielen Dank für die Erklärung.

axe

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: