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
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.
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
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
Gruss
axe
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>
<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 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
Danke und Gruss
axe
Antwort 10 von rfb
mit
Schon nach einer Millisekunde würde
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
Vielen Dank für die Erklärung.
axe

