Zeit gesetzter Text wechseln

Hallo zusammen

Ich hab da eine Frage:

  • ich möchte gerne einen Text erscheinen lassen z.B. am 30.7.13 von 19:00 bis 23:00
    nach dieser Zeit soll der Text geändert werden und dieser wiederum soll von 23:00 bis 07:00 sichtbar sein. Danach nichts mehr zu sehen sein…

Wie müsste der Script aussehen?

Ich hab keine Ahnung wie ich dies überhaupt anfangen soll, bin blutiger Anfänger was Script betrifft.

Vielen Dank für Euere Hilfe

tigub

Hallo tigub,
Du könntest ein HTML-Element z.B. mit einer id=„textelement“ versehen und dieses nur bei Bedarf anzeigen.

var jetzt = new Date();
if (jetzt.getMonth() == 6 && jetzt.getDate() == 30 && jetzt.getHours() >= 19 && jetzt.getHours() < 23) {
document.getElementById(„textelement“).innerHTML = „Mein Hinweistext“;
} else if (jetzt.getMonth() == 6 && jetzt.getDate() == 30 && jetzt.getHours() >= 23 || jetzt.getDate() == 31 && jetzt.getHours() < 7) {
document.getElementById(„textelement“).innerHTML = „Mein anderer Hinweistext“;
} else {
document.getElementById(„textelement“).style.display = „none“;
}

Eine Jahresabfrage habe ich jetzt mal aussen vor gelassen, aber es sollte ja offensichtlich ohnehin nur temporär sein.

Ich habe das jetzt nicht überprüft, aber vom Prinzip müsste es stimmen. Es ist natürlich so, dass diese Anweisungen bei Javascript imer clientseitig ausgewertet werden, d.h. ein Benutzer aus Brasilien sieht evtl. einen anderen Text als ein Benutzer aus Japan. Auch kann man natürlich beide Texte im Seitenquelltext nachlesen, aber das dürfte wahrscheinlich keinen Kummer bereiten.

Für eine einheitliche Darstellung ist eine serverseitige Programmiersprache PHP, Perl, Python o.ä. notwendig, aber für die genannte Anforderung sollte oben genanntes Skript in etwa reichen…

Weitere Informationen gibt es bei: http://de.selfhtml.org/javascript/objekte/date.htm

Gruß Jens

Hallo Jens, vielen Dank, es geht da Hauptsächlich um vielleicht 1 - 2 Wochen oder sogar nur Tage. Ich stelle noch einen Countdownzähler vorab. Somit zeigt er mir den Text an während der Countdown zurück läuft und wenn dieser auf 0 ist dann müsste der nächste Text erscheinen.
Und eben dieser erste Text müsste einfach stehen bleiben bis der Countdown 0 ist…

hm, was für’n Script? Javascript, VB-Script, Batch-Scrpt?
In welcher Umgebung soll das laufen? Wo soll das angezeigt weren?

Text abhängig nach Zeit anzeigen
Hallo tigub,

hiermit sollte es gehen:

**// Die Texte und Zeiträume definieren**
var Text1 = "je später der Abend...";
var startZeit\_Text1 = "29.07.2013 19:00"; 
var endZeit\_Text1 = "29.07.2013 23:00";

var Text2 = "Nachtruhe"; 
var startZeit\_Text2 = "29.07.2013 23:00";
var endZeit\_Text2 = "30.07.2013 07:00";

**// Die Funktion aufrufen**
TextEinOderAusblenden();

function TextEinOderAusblenden() {

 var text = "";

 **// Aktuelle Uhrzeit bestimmen** 
 var geradeEben = new Date(); 

**// Die Textvariablen in Datumsobjekte umwandeln** 
 var tmpDatum\_von = makeDateFromString(startZeit\_Text1); 
 var tmpDatum\_bis = makeDateFromString(endZeit\_Text1);
 if (tmpDatum\_von == false || tmpDatum\_bis == false) {
 alert("Falsches Format bei der Zeitangabe\nBitte verwenden Sie: dd.mm.YYYY HH:ii");
 }

**// Prüfen, ob erster Zeitraum zutrifft**  
 if (tmpDatum\_von // Die Textvariablen in Datumsobjekte umwandeln 
 var tmpDatum\_von = makeDateFromString(startZeit\_Text2);
 var tmpDatum\_bis = makeDateFromString(endZeit\_Text2);
 if (tmpDatum\_von == false || tmpDatum\_bis == false) {
 alert("Falsches Format bei der Zeitangabe\nBitte verwenden Sie: dd.mm.YYYY HH:ii");
 }

**// Prüfen, ob zweiter Zeitraum zutrifft**
 if (tmpDatum\_von // Textausgabe! 
 document.getElementById("textcontainer").html = text;

 **// In einer Minute ernuet prüfen**  
 window.setTimeout("TextEinOderAusblenden()",60000);

}

function makeDateFromString(datumUndZeit) {
 if (!datumUndZeit) return false
 var temp = datumUndZeit.split(" ");
 if (temp.length!=2) {return false} 
 var datum = temp[0];
 var zeit = temp[1]; 
 if (!datum) return false;
 datum=datum.toString();
 datum=datum.split(".");
 if (datum.length!=3) return false;
 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;
 if (datum[2].length==2) datum[2]="20"+datum[2]; 
 if (!zeit) return false;
 zeit=zeit.toString();
 zeit=zeit.split(":");
 if (zeit.length!=2) return false;
 zeit[0]=parseInt(zeit[0],10);
 zeit[1]=parseInt(zeit[1],10);
 var realDateObject=new Date(datum[2],datum[1],datum[0],zeit[0],zeit[1]);
 if (realDateObject.getDate()==datum[0] && realDateObject.getMonth()==datum[1] && realDateObject.getFullYear()==datum[2])
 return realDateObject; else return false;
}

Ersetze einfach die Zeiträume und Texte mit den Werten, die du haben möchtest. Ich hoffe ja mal, dass du dies dynamisch serverseitig befüllen kannst?! Zusätzlich musst du natürlich noch den Ausgabe-HTML-Tag bestimmen.

Viel Spaß damit…

Grüße
Ingo

Hi,

ich würde solche Dinge, je nach Gesamtstruktur, in PHP lösen - vor allem wenn es ein Einstieg ins Programmieren sein soll.

Letztlich musst du alles in logische Wenn/Dann-Sätze zusammenfassen. In diesem Fall wäre das:

„Wenn heute der 30.07. ist und wenn es zwischen 19:00 und 23:00 Uhr ist, dann zeige Text 1 an. Wenn heute der 30.07. ist und es ist nach 23:00 oder wenn heute der 31.07. ist und es ist früher als 07:00, dann zeige Text 2 an.“

Unabhängig davon in welcher Sprache du das umsetzen willst solltest du diese ein wenig beherrschen - eine super einfache Basis zum Lernen ist diese Seite: http://www.codecademy.com/ - und noch dazu kostenlos.

Ich würde tatsächlich php empfehlen, es ist leicht zu lesen und zu lernen.

Viel Erfolg!

Vielen Dank für Deine Hilfe… Nun hoffe ich nur, dass ich das mit dem Html-Tag hin bekomme… Ist noch schwierig wenn man keinen schimmer davon hat…
tigub

Frage: - dieser Html-Tag, ist das das wo ich Schriftart und das festlege? Sorry, ist einfach mein erster, soweit eigener Versuch…
tigub

Nun… das ist dann auch nicht weiter schwierig. :wink:

Das reicht eigentlich schon aus.

Grüße
Ingo

Hallo, jetzt ist das zu hoch für mich… Mit php kann man auch programmieren…?
Nun davon verstehe nun wirklich gar nichts… oder hättest Du Zeit mir dies zu machen?
Danke tigub

Ich vermute, es ist hoch geheim, was Sie da mit der Uhrzeit vorhaben. In Zeiten der NSA-Bespitzelung habe ich volles Verständnis dafür. Andererseits kann man Ihnen nicht helfen, wenn Sie uns nicht mitteilen, wann und wo ne Uhrzeit erscheinen soll und wie falsch sie eingestellt sein soll. Weihen Sie uns ein in die gute Uhrzeit-Idee…

Hallo
Also um es vorweg zu nehmen. Der Countdownzähler ist auf meinem Homepage-Programm schon integriert, ich muss ihn nur noch aktivieren… Was ich nun möchte, ist einfach den Text während der Countdown läuft: - z.B. „Zeit bis zum Ereignis“…
Und wenn dann die Zeit abgelaufen ist: - „Es ist … das und das“… Was das dann genau sein wird, weiss ich noch nicht… Könnte ein Fussballspiel sein oder ein Hockeyspiel oder oder oder…
Schau Dir mal meine seiten an:
www.hockey-sport.ch
Vielen Dank
tigub

Sorry, aber ich habs mal versucht… und schaff es nicht diese Eingaben zu machen, dass es dann auch funz…
Mercy
tigub

Sorry… war noch ein Fehler von mir drinnen. Bin wohl zu sehr im jQuery-Syntax festgehangen.

Wenn du diesen Inhalt hier in eine Textdatei kopierst und sie als HTML-Datei speicherst muss es gehen.

 TEST

 var Text1 = "je später der Abend...";
 var startZeit\_Text1 = "29.07.2013 19:00"; 
 var endZeit\_Text1 = "29.07.2013 23:00";

 var Text2 = "Nachtruhe"; 
 var startZeit\_Text2 = "30.07.2013 10:00";
 var endZeit\_Text2 = "30.07.2013 13:00";

 function TextEinOderAusblenden() {

 var text = "";

 // Aktuelle Uhrzeit bestimmen 
 var geradeEben = new Date(); 

 // Die Textvariablen in Datumsobjekte umwandeln 
 var tmpDatum\_von = makeDateFromString(startZeit\_Text1); 
 var tmpDatum\_bis = makeDateFromString(endZeit\_Text1);
 if (tmpDatum\_von == false || tmpDatum\_bis == false) {
 alert("Falsches Format bei der Zeitangabe\nBitte verwenden Sie: dd.mm.YYYY HH:ii");
 }

 // Prüfen, ob erster Zeitraum zutrifft
 if (tmpDatum\_von \<= geradeEben && geradeEben \<= tmpDatum\_bis) {
 text = Text1
 }

 // Die Textvariablen in Datumsobjekte umwandeln
 var tmpDatum\_von = makeDateFromString(startZeit\_Text2);
 var tmpDatum\_bis = makeDateFromString(endZeit\_Text2);
 if (tmpDatum\_von == false || tmpDatum\_bis == false) {
 alert("Falsches Format bei der Zeitangabe\nBitte verwenden Sie: dd.mm.YYYY HH:ii");
 }

 // Prüfen, ob zweiter Zeitraum zutrifft 
 if (tmpDatum\_von \<= geradeEben && geradeEben \<= tmpDatum\_bis) {
 text = Text2
 }

 // Textausgabe! 
 document.getElementById("textcontainer").innerHTML = text;

 // In einer Minute ernuet prüfen
 window.setTimeout("TextEinOderAusblenden()",60000);

 }

 function makeDateFromString(datumUndZeit) {
 if (!datumUndZeit) return false
 var temp = datumUndZeit.split(" ");
 if (temp.length!=2) {return false} 
 var datum = temp[0];
 var zeit = temp[1]; 
 if (!datum) return false;
 datum=datum.toString();
 datum=datum.split(".");
 if (datum.length!=3) return false;
 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;
 if (datum[2].length==2) datum[2]="20"+datum[2]; 
 if (!zeit) return false;
 zeit=zeit.toString();
 zeit=zeit.split(":");
 if (zeit.length!=2) return false;
 zeit[0]=parseInt(zeit[0],10);
 zeit[1]=parseInt(zeit[1],10);
 var realDateObject=new Date(datum[2],datum[1],datum[0],zeit[0],zeit[1]);
 if (realDateObject.getDate()==datum[0] && realDateObject.getMonth()==datum[1] && realDateObject.getFullYear()==datum[2])
 return realDateObject; else return false;
 }

Grüße
Ingo

Vielen Dank… Ich hoffe nur dass es auch geht wenn ich all die Sachen noch geändert hab, die noch zu ändern sind… Hab schon mal versucht etwas zu machen aber da ging bis anhin nichts…
tigub

Bastel doch erst einmal deine Seite so zusammen wie du sie gerne hättest. An der Stelle, an der dein Text stehen soll schreibst du einfach irgendetwas hinein.

Und wenn du dann soweit bist und nicht weiter kommst dann poste einfach deinen Quellcode. Ich denke, dass bekommen wird dann recht schnell zum laufen! :wink:

Grüße
Ingo

Das script ist relativ simpel. Du verwendest setIntervall um einmal pro minute die Zeit zu prüfen. Und wenn die Zeit stimmt änderst du den Text.
Bedenke aber, das dabei die Zeit vom Rechner des users abgefragt wird. Besser wäre es evtl wenn du das auf dem Server machst.

Du bist noch ein bißchen weit weg von der Lösung, sodaß ich Dir nicht anders weiterhelfen kann, als mit einem Link:
http://de.selfhtml.org/
Dort solltest Du die Doku 8.1.2 lesen.
Was Du zur Lösung Deines Problems benötigst ist die Beschreibungssprache einer Webpage namens HTML und die dort verwendbare Programmiersprache Javascript.
Viel Erfolg!

Vielen Dank
das wird ich machen…
tigub

Danke für Deinen rat… Für mich leider etwas zu hoch… Hab schon beim Script ausbessern Probleme…
tigub