Tom: Script nur zu einem best. Zeitpunkt ausführen

Beitrag lesen

Hallo Diana,

da nimmst Du natürlich die dritte von zwei Möglichkeiten ;-)

Ich möchte jeden zweiten Montag, d.h. alle zwei Wochen das Script starten:

Du baust Dir mit Hilfe der Funktion strtotime() oder mit der Tastatur eine Variable, die die Montage eines Jahres speichert:

$Montage2003=array("nicht enthalten","06.01.2003","13.01.2003","20.01.2003","27.01.2003","...");

Dann hast Du alle 52 Montage (musste erst nachzählen, hätten auch 53 sein können) des Jahres gespeichert.

Nun musst Du nach der Ermittlung des Datums nur noch mit der Funktion
$montagnummer = array_search ( $suchdatum, $Montage2003 [, bool strict])

herausfinden, ob das Datum in der Liste steckt ($montagnummer > 0) und ob es ein gerader oder ungerader Montag ist.

Achte darauf, dass ich als ersten Wert "nicht enthalten" (kannst auch "blahblah" nehmen) in das Array geschrieben habe. Days hat zwei Gründe:
1. Die Wochennummer ist gleich dem Index des Datums im Array, denn Arrays fangen in PHP ja bei 0 an zu zählen.
2. Wenn Du mit array_search() fragst, ob der Montag enthalten ist, und er ist nicht im Array, dann liefert Array_Search() false. Das müsste man dann erst wieder mit Ergebnis !== false ausschließen. Einfacher ist es, direkt den Index als Ergebnis auszuwerten. Da 0 sich aber bei numerischen Vergleichen wie false verhält, haben wir einfach den Index 0 mit einem Fremdwert belegt.

Da Verfahren mit einer solchen Variablen ist wesentlich schneller, als wenn man diese Datums-Monsterfunktion einsetzt.

Na, und 2004 kannst Du dann das Update-Service-Pack "Montage2004" verkaufen ;-))

Ich hoffe, Du kommst nun zurecht.

Liebe Grüße

Tom