Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Datumsbedingte Textanzeige
Frage
Hallo,
ich habe auf der von mir geschriebenen Web-Site (www.modelleisenbahnverein-tuerkenfeld.de) eine Seite, auf der angezeigt wird, wann das nächste Mitgliedertreffen stattfindet. Ich möchte jetzt aber, dass sich diese Anzeige auf den nächsten Termin setzt (von mir eingegeben), sobald dieser Tag abgelaufen ist.
Weiß jemand, wo ich so einen Script finde, oder wie ich ihn programmiere?
Gruß Tom
Antwort 1 von semi
Kannst Du PHP oder Perl verwenden? Am besten noch mit SSI (Server Side Includes)?
Antwort 2 von Ding280
Hi,
nein, kann ich nicht, beherrsche ledeglich HTML halbwegs. Habe aber schon gesehen, dass es Datumsbedingte umleitungen auf verschiedene Seite gibt, kann man das nicht einfach ein wenig Umschreiben, sodass sich nur das Datum ändert.
Gruß Tom
nein, kann ich nicht, beherrsche ledeglich HTML halbwegs. Habe aber schon gesehen, dass es Datumsbedingte umleitungen auf verschiedene Seite gibt, kann man das nicht einfach ein wenig Umschreiben, sodass sich nur das Datum ändert.
Gruß Tom
Antwort 3 von semi
Man kann es mit Javascript machen.
Sind die "Spielregeln" für Eure Treffen immer gleich?
Ich kann Dir die Lösung dafür geben, heute aber nicht mehr. Ich habe schon viereckige Augen :-)
Gruss,
Michael
Sind die "Spielregeln" für Eure Treffen immer gleich?
Zitat:
Wir treffen uns jeden 3. Freitag im Monat um 20:00 Uhr im Gasthof Drexl in Türkenfeld, sowie jeden Donnerstag ebenfalls um 20:00 Uhr in unseren Vereinsräumen um zu beraten, was wir am Samstag ab ca. 14:00 Uhr an unsere Anlage weiterbauen.
Wir treffen uns jeden 3. Freitag im Monat um 20:00 Uhr im Gasthof Drexl in Türkenfeld, sowie jeden Donnerstag ebenfalls um 20:00 Uhr in unseren Vereinsräumen um zu beraten, was wir am Samstag ab ca. 14:00 Uhr an unsere Anlage weiterbauen.
Ich kann Dir die Lösung dafür geben, heute aber nicht mehr. Ich habe schon viereckige Augen :-)
Gruss,
Michael
Antwort 4 von Ding280
Hi,
es handelt sich nur um den 3. Freitag im Monat, aber den kann ich selber eingeben. Ich will nur, dass der Text auf das nächste Datum springt, sobald der Tag, an dem das Treffen ist, vorbei ist.
Gruß Tom
es handelt sich nur um den 3. Freitag im Monat, aber den kann ich selber eingeben. Ich will nur, dass der Text auf das nächste Datum springt, sobald der Tag, an dem das Treffen ist, vorbei ist.
Gruß Tom
Antwort 5 von semi
Hi,
das Ding war etwas komplizierter als ich dachte. Oder ich denke zu viel und in die falsche Richtung :-)
Javascript ist kein Problem aber die verfügbaren Datumsfunktionen sind unheimlich umständlich.
Hier zuerst mal die Lösung:
Es gibt Sprachen, in denen solche Berechnungen um vieles einfacher sind.
Beispiel in der Sprache Clarion kann ich folgendes Datum erstellen
32 Dezember 2002. Intern wird es in das korrekte Datum umgewandelt. Im Beispiel wäre das 1 Januar 2003.
Ich hoffe es funktioniert OK. Kann sein dass ich es komplizierter gemacht habe als nötig. Die Anzeige ist exakt gleich, wie auf Deiner Seite - Du brauchst es nur zu ersetzen.
So sieht es ungefähr aus:
WENN Datum < "Donnerstag 20 Uhr" ODER Datum > "Samstag 14 Uhr"
Treffen am Donnerstag
SONST WENN Datum > "Donnerstag 20 Uhr" UND "dritter Freitag"
Treffen am Freitag
SONST WENN Datum "vor Samstag 14 Uhr"
Treffen am Samstag
Gruss,
Michael
das Ding war etwas komplizierter als ich dachte. Oder ich denke zu viel und in die falsche Richtung :-)
Javascript ist kein Problem aber die verfügbaren Datumsfunktionen sind unheimlich umständlich.
Hier zuerst mal die Lösung:
<html>
<head>
<script>
function Treffen(datum, ort) {
this.datum = datum;
this.ort = ort;
function toString() {
wd = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
"Donnerstag", "Freitag", "Samstag");
return "<font color=\"red\" size=\"+3\">"+
wd[this.datum.getDay()] + ", dem " +
this.datum.getDate()+"."+
(this.datum.getMonth()+1)+"."+
this.datum.getFullYear()+" um "+
this.datum.getHours()+" Uhr.<br>"+
"<font color=\"red\" size=\"+2\">"+
this.ort + "</font>";
}
this.toString=toString;
}
function terminBerechnen(d) {
tmp=d.getDate()+(5-d.getDay())
df=(tmp>=15 && tmp<=21);
wd=(d.getDay()==0)?7:d.getDay();
n=((wd-1)*864)+(d.getHours()*36);
k=(n<3312)?4:(n<4176 && df)?5:(n<4824)?6:7;
l=(k<7)?Math.abs(d.getDay()-k):11-wd;
var ml = new Array(
31,((d.getYear()%4)>0)?28:29,31,30,31,30,31,31,30,31,30,31
);
dd=d.getDate()+l;
mm=d.getMonth();
yy=d.getFullYear();
if(dd>ml[d.getMonth()]) {
dd=ml[d.getMonth()]-dd;
mm++;
}
if(mm>11) {
mm=0;
yy++;
}
date=new Date(yy,mm,dd,(k==6)?14:20,0,0);
ort = (k==5)?"im Gasthof Drexl in Türkenfeld":"in unseren Vereinsräumen.";
return new Treffen(date, ort);
}
function terminAusgeben() {
document.write(terminBerechnen(new Date()).toString());
}
</script>
</head>
<body>
<center>
<h1>Treffen</h1>
Wir treffen uns jeden 3. Freitag im Monat um 20:00 Uhr im Gasthof Drexl
in Türkenfeld, sowie jeden Donnerstag ebenfalls um 20:00 Uhr in unseren
Vereinsräumen um zu beraten, was wir am Samstag ab ca. 14:00 Uhr an unsere
Anlage weiterbauen.<br>
<p><font color="red" size="+2">Unsere nächste Vereinssitzung
ist am</font><br>
<script>
terminAusgeben();
</script>
</p>
</center>
</body>
</html>
Es gibt Sprachen, in denen solche Berechnungen um vieles einfacher sind.
Beispiel in der Sprache Clarion kann ich folgendes Datum erstellen
32 Dezember 2002. Intern wird es in das korrekte Datum umgewandelt. Im Beispiel wäre das 1 Januar 2003.
Ich hoffe es funktioniert OK. Kann sein dass ich es komplizierter gemacht habe als nötig. Die Anzeige ist exakt gleich, wie auf Deiner Seite - Du brauchst es nur zu ersetzen.
So sieht es ungefähr aus:
WENN Datum < "Donnerstag 20 Uhr" ODER Datum > "Samstag 14 Uhr"
Treffen am Donnerstag
SONST WENN Datum > "Donnerstag 20 Uhr" UND "dritter Freitag"
Treffen am Freitag
SONST WENN Datum "vor Samstag 14 Uhr"
Treffen am Samstag
Gruss,
Michael
Antwort 6 von semi
..habe etwas vergessen:
In Deinem Code beginnt die Seite wie folgt:
In Deinem Code beginnt die Seite wie folgt:
<html>
<head>
<title>Treffen</title>
<link rel=stylesheet type="text/css" href="../style.css">
<script>
...
Hier alles von Antwort 5 ab <script> einfügen
...
Antwort 7 von Ding280
Hi,
danke dafür, aber es funktioniert nicht. Ich hab es einfach kopiert und probiert. Und das, was sich ändern soll ist ledeglich das rote, große Datum, mehr nicht.
Gruß Tom
danke dafür, aber es funktioniert nicht. Ich hab es einfach kopiert und probiert. Und das, was sich ändern soll ist ledeglich das rote, große Datum, mehr nicht.
Gruß Tom
Antwort 8 von semi
Was funktioniert nicht?
Wenn sich nur das Datum ändert, dann stimmt an den Freitagen die Ortsangabe nicht. Samstags wieder die Uhrzeit.
Wenn sich nur das Datum ändert, dann stimmt an den Freitagen die Ortsangabe nicht. Samstags wieder die Uhrzeit.
Antwort 9 von Ding280
Hi,
beim IE kommt die Fehlermeldung, dass ; in Zeile 0 erwartet wird.
Gruß Tom
beim IE kommt die Fehlermeldung, dass ; in Zeile 0 erwartet wird.
Gruß Tom
Antwort 10 von semi
Es muss irgendwie an dem Copy/Paste gelegen haben.
Ist Deine Email-Adresse korrekt?
Ich schicke es Dir zu.
Ist Deine Email-Adresse korrekt?
Ich schicke es Dir zu.
Antwort 11 von Ding280
Hi,
danke, habe es erhalten, und es funktioniert. Ich werde es demnächst einbauen. Danke.
Gruß Tom
danke, habe es erhalten, und es funktioniert. Ich werde es demnächst einbauen. Danke.
Gruß Tom

