Text Wochentag + Zeitabhängig
 HomeZeit • Text tag- + zeitabhängig Beispiel  Zip-Download 

Textausgabe 02 - je nach Wochentag + Tageszeit

Hier wird schon ein wenig mehr Aufwand betrieben. Grundsätzlich wird erst einmal der Wochentag festgestellt. Schließlich möchte ich die Möglichkeit haben, für jeden Wochentag unterschiedliche Zeitspannen festzulegen. Für die 7 Tage werden mehrere (unterschiedliche?) Zeitspannen besimmt.
textanzeige zeitabhängig uhrzeit wochentag if else innerHTML

Text abhängig von Wochentag und Uhrzeit anzeigen (56 Optionen)

UPDATE  Anzeige des Textes in einer Div-Box, Script, ZIP-Datei, Erklärungen

Starttext

Oben. Life-Demo des Beispiels CSS-formatiert mit Hintergrundgrafik

  Life-Demo für die Textausgabe (Radiostation)   Text 1
Text 2
Text 3

Wenn Sie das mit CSS ein wenig nett (mit Hintergrundgrafik) verpacken siehtdas Resultat gleich ansprechender aus (siehe oben).

7 Wochentage mit je 8 Zeitspannen

Unterscheidung hier: 7 Wochentage mit je 8 Zeitspannen! Die Zeitspannen können für jeden Wochentag variieren. In dieser Konstellation sollten also 56 unterschiedliche Optionen möglich sein. Dazu müssten 56 Texte zu Verfügung stehen oder identische Texte zu festgelegten Zeiten mehrmals eingesetzt werden. Natürlich können Sie das Script auf weniger als 8 Zeitspannen pro Tag dezimieren oder für weitere ausbauen.

Für ein Modul mit täglich gleichen Texten schauen Sie auf Textausgabe 01

Dieses Modul könnten Sie einsetzen um die Erreichbarkeit im Büro, zeitabhängige Notruf-Rufnummern, Bürozeiten einer Selbsthilfegruppe, Infos zur aktuellen Radiosendung, Zeiten der Rufbereitschaft, ... auf Ihrer Seite darzustellen. Beispiel für Pausenzeiten:

Screenshot



Durch die Verwendung von vordefinierten Texten (die in Variablen abgelegt werden) und deren mehrmaligen Einsatz müssen nicht unbedingt 56 unterschiedliche Texte festgelegt werden:



Ein etwas aufwendigeres Script mit 8 Zeitspannen an 7 Wochentagen. Abhängig vom Wochentag und der Tageszeit wird ein vordefinierter Text angezeigt.

Meine Demo bietet in dieser Konstellation die Option für 56 (wenn Sie möchten) unterschiedliche Anzeigen. Das könnten Sie natürlich ändern. Ich habe bei meinem Beispiel einmal die praktische Anwendung für die Webseite eines Radiosenders gewählt. Der Name der Sendung (und des Moderators?) für die gerade ausgestrahlte Sendung wird angezeigt. Sie könnten andere Vorgaben für die Zeitspannen festlegen und die Darstellung der Anzeige mit CSS nach eigenen Wünschen gestalten. Beispiele unterschiedlicher Formatierung anzeigen:

Was läuft gerade?     Beispiel 02     Beispiel 03


Beispiele der Anzeige:

Montag, 10:23 Uhr - Hausmeisterservice - wir sind für Sie da!
Unsere Mitarbeiter sind jetzt telefonisch erreichbar unter 01234-12345 (mobil)

Mittwoch, 22:13 Uhr - Gas Wasser Abfluss - Wir sind für Sie da!
Terminabspachen von 07:00 - 15:00 Uhr unter 01234-12345
Unsere Rufbereitschaft ist erreichbar unter 0123-123456789


Sonntag, 14:43 Uhr - Heizung Meier - wir sind immer erreichbar!
Unsere Mitarbeiter sind am Montag ab 8 Uhr wieder erreichbar unter 01234-12345
Unserer Notdienst ist erreichbar unter 0123-987654321




Aufwand für die Einbindung

1) Scriptcode im Head-Bereich notieren
2) Anzeige-Box im Body-Bereich notieren
3) 4 Texte anpassen
4) Zeitvorgaben anpassen

Kurzinfo JavaScript in ein HTML-Dokument 'einbauen'

Anzeige-Box im Body-Bereich

Der Text wird durch das Script an der Stelle in Ihr Dokument geschrieben, wo Sie die Anzeige-Box notiert haben. Beachten Sie, das ich der Box eine ID zugeordnet habe. Über diese ID kann ich die Box 'adressieren' und den Text innerhalb der Box austauschen.
<div id="InfoText"> Starttext </div>
Das geschieht in meinem Beispiel mit
document.getElementById("InfoText").innerHTML = ... ;



Textformatierung

Der Text wird innerhalb einer Div-Box dargestellt. Da die Box eine ID hat (InfoText) bietet es sich an, über die Verknüfung mit der ID ein CSS-Style zuzuweisen. Angaben zur Formatierung der Texte tragen Sie im CSS-Block ein.
<style type="text/css">
<!--

#InfoText {
font-family: Verdana,sans-serif;
font-weight: normal;
font-size: 12px;
line-height: 130%;
text-align: left;
color: #000000;
}

-->
</style>
Auch die Position der Box (absolut oder relativ), die Größe und Darstellung könnte man mit einbeziehen. Hier ein Beispiel zur absoluten Positionierung mit Bezug auf die linke obere Ecke des Browserfensters:
<style type="text/css">
<!--

#InfoText {
position: absolute;
top: 180px;
left: 200px;
width: 550px;
height: 200px;
border: 1px solid #000000;
font-family: Verdana,sans-serif;
font-weight: normal;
font-size: 12px;
line-height: 130%;
text-align: left;
color: #000000;
}

-->
</style>



Schleifen für die Abfrage von Tag und Zeit

Für die unterschiedlichen Anzeigen abhängig von Wochentag und Uhrzeit werden if-Schleifen durchlaufen. Grundsätzlich jeweils eine für den Wochentag und innerhalb des Tages mehrere if-Abfragen für die Uhrzeit. Wie viele unterschiedliche Zeitspannen Sie festlegen möchten bleibt Ihren überlassen.

Zur Zeit werden nur volle Stunden unterschieden! Für Unterscheidungen der Zwischenzeiten mit Minuten (z.B. für 09:30 Uhr) müsste man die Abfrage ändern. Infos dazu weiter unten.

Die Texte habe ich Variablen zugeordnet. So kann ich während der Woche mehrmals auf gleiche Texte zugreifen ohne Doppelnennungen notieren zu müssen. Für die Zeitspannen werden die passenden Texte über die entsprechende Variable abgerufen.

Beispiel:
var TextModul01 = "Aktuelle Sendung: <b>Nacht-Cafe<\/b><br>Die Hits der 70er, 80er,
90er und das Beste von heute";

var TextModul02 = "Aktuelle Sendung: <b>Frühstücksradio<\/b><br>Livesendung aus
dem Studio Heinsberg";

Die Abfrageschleifen (Auszug):
// Tag 0 Sonntag
if (Tag == "0") {
// Unterscheidung der Uhrzeiten
if (Stunde >= "0" && Stunde < "9") ZeitText = TextModul01;
if (Stunde >= "9" && Stunde < "12") ZeitText = TextModul02;
if (Stunde >= "12" && Stunde < "17") ZeitText = TextModul03;
if (Stunde >= "17" && Stunde < "18") ZeitText = TextModul04;
if (Stunde >= "18" && Stunde < "20") ZeitText = TextModul05;
if (Stunde >= "20" && Stunde < "23") ZeitText = TextModul06;
if (Stunde >= "22" && Stunde < "24") ZeitText = TextModul01;
}

// Tag 1 Montag
if (Tag == "1") {
// Unterscheidung der Uhrzeiten
if (Stunde >= "0" && Stunde < "6") ZeitText = TextModul01;
if (Stunde >= "6" && Stunde < "9") ZeitText = TextModul02;
if (Stunde >= "9" && Stunde < "12") ZeitText = TextModul07;
if (Stunde >= "12" && Stunde < "15") ZeitText = TextModul04;
if (Stunde >= "15" && Stunde < "17") ZeitText = TextModul03;
if (Stunde >= "17" && Stunde < "20") ZeitText = TextModul05;
if (Stunde >= "20" && Stunde < "24") ZeitText = TextModul03;
}

// Tag 2 Dienstag
if (Tag == "2") {

...
Am Montag wird demnach von 00:00 - 05:59 Uhr der Text des Moduls 01 angezeigt.
Am Montag wird demnach von 06:00 - 08:59 Uhr der Text des Moduls 02 angezeigt.
Am Montag wird demnach von 09:00 - 11:59 Uhr der Text des Moduls 07 angezeigt.
...



Nicht nur volle Stunden?

Möchten Sie mehr als nur volle Stunden unterschieden, müsen die Minutenwerte berücksichtigt werden. Für Unterscheidungen der Zwischenzeiten muss man 2 Situationen auf den Wahrheitsgehalt untersuchen:
  1. Die (vollen) Stunden vor der Schlüsselzeit
  2. Die (angebrochene) Stunde mit Minutenwerten der Schlüsselzeit
Die Abfrage ist dann eine Kombination der beiden Untersuchungen


a)  Abfrage für die Schlüsselzeit 09:30 Uhr

1) Für die Zeit bis 8:59 Uhr
Stundenwert StdAktuell < 9 Minutenwert egal
2) Für die Zeit von 9:00 - 9:30 Uhr
Stundenwert StdAktuell == 9 Minutenwert MinAktuell < 30

if (StdAktuell < 9 || StdAktuell == 10 && MinAktuell < 30) ZeitText = ...
Entweder die 1. oder die 2. Bedingung muss wahr sein:
(Stundenwert kleiner 9) oder (Stundenwert gleich 10 und Minutenwert kleiner 30)



b)  Abfrage für die Schlüsselzeit 18:45 Uhr (andere Variante)

1) Für die Zeit bis 17:59 Uhr
Stundenwert StdAktuell <= 17 Minutenwert egal
2) Für die Zeit von 18:00 - 18:45 Uhr
Stundenwert StdAktuell == 18 Minutenwert MinAktuell < 45

if (StdAktuell <= 17 || StdAktuell == 18 && MinAktuell < 45) ZeitText = ...
Entweder die 1. oder die 2. Bedingung muss wahr sein:
(Stundenwert kleiner / gleich 17) oder (Stundenwert gleich 18 und Minutenwert kleiner 45)






Das könnte Sie auch interessieren: