bestimmten Tag für eine Aktion festlegen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

bestimmten Tag für eine Aktion festlegen

Beitrag von Dungeonwatcher »

Moin! 8)

Eine Frage an die Profis. :)

Ich möchte an einem bestimmten Tag zu einer bestimmten Zeit eine bestimmte Aktion ausführen lassen. Und zwar soll dies der erste 13. eines Monats sein, welcher auf einen Freitag fällt und nach Ostern kommt. Mit der Festlegung von Ostern komme ich klar:

Code: Alles auswählen

if (easter_days())
{
     ...
}
Nur wie muss dies Korrekt aussehen.

Bye
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von gn#36 »

Wenn du weißt wo Ostern liegt dann kannst du ja einfach den Rest auf den 13. eines Monats festlegen und danach prüfen ob das Datum größer als das Osterdatum ist.

Also quasi so:

Code: Alles auswählen

if(date('d') == 13 && time() > $oster_datum_als_timestamp && date('w') == 5)
{
//Das wird nur ausgeführt wenn es am Freitag den 13. aufgerufen wird 
//wobei das Datum nach einem gewissen Timestamp liegen muss
} 
$oster_datum_als_timestamp musst du natürlich noch füllen mit deinem Datum. Ggf. per [php:mktime] den Timestamp aus deinem Datum erzeugen. Für weitere erklärungen dazu siehe auch [php:date].
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Miriam »

Das klappt dann für alle Fr 13th ab dem festgelegten Ostern.... auch wenn es welche im darauf folgenden Jahr vor dem dann kommenden Ostern geben sollte.

Idee:

Code: Alles auswählen

<?php
function fr13th_after_easter($calendar_date)
{
    if ((easter_date(date("Y", $calendar_date)) < $calendar_date) AND ((date("w", $calendar_date) == 5) AND (date("d", $calendar_date) == 13)))
    {
        return true;
    }    
}

$day2check = mktime(0,0,0,date("m"),date("d"),date("Y")); // als Beispiel heute, kann auch jeder andere Timestamp sein

if (fr13th_after_easter($day2check))
{
    print "Es ist Freitag, der 13.";
}
else
{
    print "Irgendein Tag in der Woche";
}
?>
Es werden die Freitage, die 13., beachtet, die ab Ostern des Jahres, das im $to_day (timestamp) abgefragt wird, auftauchen. Also der 13. Nov 2009. Aber nicht die vor Ostern: Also nicht der 13.02.2009 und nicht der 13.03.2009 (für 2009).
Zuletzt geändert von Miriam am 14.01.2009 23:18, insgesamt 1-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von gn#36 »

Naja ich war davon ausgegangen dass die Ostern-Funktion mir schon das Osterdatum des aktuellen Jahrs liefert und nicht einfach irgend eins. In dem Fall müsste das so wie ich das geschrieben habe funktionieren.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Miriam »

Jetzt hat Dungeonwatcher sogar zwei Möglichkeiten zum Ausprobieren. Ist doch auch mal was. :D
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von gn#36 »

Wo ich mir deine Funktion noch mal ansehe: Wo prüft die denn ob es überhaupt Freitag der dreizente ist? Ich sehe da gar keine Prüfung drin.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Miriam »

:o Ich auch nicht....
Manno :-?
Hab's oben geändert. Danke für den Hinweis.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Dungeonwatcher »

Hi! 8)

Ich danke euch für diese Ideen. :)
Am Wochenende werde ich mir das in Ruhe durch den Kopf gehen lassen und versuchen das ganze zu verstehen. Bei Fragen melde ich mich wieder, ansonsten gibt es nach dem 13.11.09 hier eine Erfogsmeldung. 8)
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Miriam »

Oder Misserfolgsmeldung :D
teste es doch lokal mit xampp und einem geänderten Datum auf Deinem lokalen Webserver.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Dungeonwatcher
Mitglied
Beiträge: 635
Registriert: 11.07.2004 10:04
Wohnort: Berlin

Re: bestimmten Tag für eine Aktion festlegen

Beitrag von Dungeonwatcher »

Miriam hat geschrieben:Oder Misserfolgsmeldung :D
Das will ich mal gleich ausschliessen. :)
teste es doch lokal mit xampp und einem geänderten Datum auf Deinem lokalen Webserver.
Hmmm, da ist was dran. Ich melde mich die Tage wieder, versprochen. 8)
Antworten

Zurück zu „Coding & Technik“