Jeden Tag / Jede Stunde neuen Text anzeigen

.holger

Lounge-Member
In unserer heutigen JavaScript Stunde beschäftigen wir uns mit dem "Problem" zu einer bestimmten Zeit (sei es ein Tag, eine Stunde, eine Minute oder eine Sekunde) einen Text auszugeben.
Das Problem ist recht einfach aus der Welt zu schaffen:

Man muss sich nur das aktuelle Datum besorgen. Das macht man mit

today = new Date();

nun muss man sich überlegen wann der Text geändert werden soll (jeden Monat, jeden Tag, jeden Wochentag, Jede Stunde,...)

dazu benutzen wir folgendes (aber nur eins davon):

zeit = today.getMonth(); (für den Monat)
zeit = today.getDate(); (für den Tag im Monat)
zeit = today.getDay(); (für den Wochentag)
zeit = today.getHour(); (für die Stunde)
zeit = today.getMinutes(); (für die Minuten)
zeit = today.getSeconds(); (für die Sekunden)

nun brauchen wir noch ein Array mit den Texten die ausgegeben werden sollen (hier 7 Elemente - also jeden Wochentag was anderes):

ausgabetext = new Array(
"www.afriendlyworld.com ist cool",
"Hallo Du da, wie gehts dir?",
"Ich bin der beste bin der größte bin der schönste der erlöste ich bin ein w***** und ein schwein das alles kann ich sein",
"www.holgerkrupp.de nur für dich",
"bin ich Jesus oder bin ich schizophren?",
"Berlin ist Pleite und jeder tut so als ob das ungewöhnlich wär",
"ooops, hatte einen Text vergessen - waren nur 6");


dann muss das ganze nur noch zusammen geführt und ausgegeben werden:

document.write(ausgabetext[zeit]);

tja, und das war's schon.

Jetzt noch mal zum kopieren (für die Faulen unter uns):

Code:
<script language="JavaScript"> 
<!-- 

today = new Date(); 
zeit = today.getDay();

ausgabetext = new Array( 
"www.afriendlyworld.com ist cool", 
"Hallo Du da, wie gehts dir?", 
"Ich bin der beste bin der größte bin der schönste der erlöste ich bin ein w***** und ein schwein das alles kann ich sein", 
"www.holgerkrupp.de nur für dich", 
"bin ich Jesus oder bin ich schizophren?", 
"Berlin ist Pleite und jeder tut so als ob das ungewöhnlich wär",
"ooops, hatte einen Text vergessen - waren nur 6");

document.write(ausgabetext[zeit]);
// --> 
</script>

Dieser Code ändert jeden Tag in der Woche den Text (also Montag ist ein anderer Text als Dienstag und ein anderer als Mittwoch,....) Den Code könnt ihr dann wie oben beschrieben abändern.

Den ganzen Code könnt ihr dann genau an der Stelle im Quelltext, wo der Text erscheinen soll, eintragen.
 
Zuletzt bearbeitet von einem Moderator:
Ich hab das nun so geschrieben, wie es oben steht wollte das aber für einen Monat machen. Hab da nun 31 Texte stehen... nun steht da aber undefinied. Läuft das nicht in einer Schleife und wenn nicht, wie macht man das so, dass es in einer läuft?
 
Black_Mystics schrieb:
Ich hab das nun so geschrieben, wie es oben steht wollte das aber für einen Monat machen. Hab da nun 31 Texte stehen... nun steht da aber undefinied. Läuft das nicht in einer Schleife und wenn nicht, wie macht man das so, dass es in einer läuft?

moin

nein, das läuft nicht in einer schleife.
brauchts auch nicht.
wenn die seite aufgerufen wird, dann passiert folgendes:

mit today = new Date(); wird eine neue variable vom typ Date initialisiert.
bei zeit = today.getDay(); holt man den aktuellen Tag. also 1=Montag, 2=Dienstag, 3=Mittwoch...

danach wird das ausgabearray mit dem inhalt gefüllt.

und schlussendlich bei document.write(ausgabetext[zeit-1]); holt man das gewünschte raus.
das heisst: heute ist montag. in zeit steht also 1 drin.
da das array aber mit dem index 0 startet brauchts noch ein -1.
am montag holen wir deshalb also den text an stelle 0 des ausgabearrays raus.

falls du das ganze nun jeden tag im monat machen willst, dann brauchst du:

zeit = today.getDate(); (für den Tag im Monat)

ansonsten sollte alles beim alten bleiben.

Soc
 
öhm hallo....

ich habe mal ne frage?

Ich habe alles so weit Verstanden wie es beschrieben wurde.
Funktioniert auch wunderbar.

Nur meine frage ist:

Wie kann man Die texte Minütlich pro Tag ausgeben?

als nicht 60 minuten pro 1 stunde
sondern 1440 minuten pro 24 stunden

Geht das überhaubt?
 
Das ist Blödsinn, getDay() startet bei Sonntag = 0, also nichts mit zeit - 1

und die letzte Frage, dazu musst du einfach getMinutes() mit getHour() miulitplizieren und du brauchst in dem Fall natürlich eine Array mit 1440 Einträgen.
 
Zurück
Oben