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.
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…
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…
**// 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.
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.
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
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… 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;
}
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!
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!