« Zurück zu Produkt

Dokumentation

IPS_SetEventCyclic

 bool IPS_SetEventCyclic (int $EreignisID, int $Datumstyp, int $Datumsintervall, int $Datumstage, int $Datumstagesintervall, int $Zeittyp, int $Zeitintervall) 

Parameterliste

EreignisID

ID des zu verändernden Ereignisses

Datumstyp
Wert Konstante Beschreibung
0 EVENTCYCLICDATETYPE_NONE Kein Datumstyp. Tägliche Ausführung.
1 EVENTCYCLICDATETYPE_ONCE Einmalig. IPS_SetEventCyclicDateFrom für Zieldatum
2 EVENTCYCLICDATETYPE_DAY Täglich
3 EVENTCYCLICDATETYPE_WEEK Wöchentlich
4 EVENTCYCLICDATETYPE_MONTH Monatlich
5 EVENTCYCLICDATETYPE_YEAR Jährlich
Datumsintervall
Wert Konstante Beschreibung
0 EVENTCYCLICDATETYPE_NONE 0 (Keine Auswertung)
1 EVENTCYCLICDATETYPE_ONCE 0 (Keine Auswertung)
2 EVENTCYCLICDATETYPE_DAY Alle X Tage
3 EVENTCYCLICDATETYPE_WEEK Alle X Wochen
4 EVENTCYCLICDATETYPE_MONTH Alle X Monate
5 EVENTCYCLICDATETYPE_YEAR 1 = Januar … 12 = Dezember
Datumstage
Wert Konstante Beschreibung
0 EVENTCYCLICDATETYPE_NONE 0 (Keine Auswertung)
1 EVENTCYCLICDATETYPE_ONCE 0 (Keine Auswertung)
2 EVENTCYCLICDATETYPE_DAY 0 (Keine Auswertung)
3 EVENTCYCLICDATETYPE_WEEK siehe Tabelle: Tageswerte (gewünschte Tageswerte müssen addiert werden)
4 EVENTCYCLICDATETYPE_MONTH siehe Tabelle: Tageswerte oder 0 für jeden X Tag im Monat
5 EVENTCYCLICDATETYPE_YEAR 0 (Keine Auswertung)

Tabelle: Tageswerte

Tag Wert Konstante
Montag 1 EVENT_DAY_MONDAY
Dienstag 2 EVENT_DAY_TUESDAY
Mittwoch 4 EVENT_DAY_WEDNESDAY
Donnerstag 8 EVENT_DAY_THURSDAY
Freitag 16 EVENT_DAY_FRIDAY
Samstag 32 EVENT_DAY_SATURDAY
Sonntag 64 EVENT_DAY_SUNDAY
Alle Tage 127 EVENT_DAY_ALL
Datumstagesintervall
Wert Konstante Beschreibung
0 EVENTCYCLICDATETYPE_NONE 0 (Keine Auswertung)
1 EVENTCYCLICDATETYPE_ONCE 0 (Keine Auswertung)
2 EVENTCYCLICDATETYPE_DAY 0 (Keine Auswertung)
3 EVENTCYCLICDATETYPE_WEEK 0 (Keine Auswertung)
4 EVENTCYCLICDATETYPE_MONTH Jeden X Datumstag im Monat oder jeden X Tag im Monat, falls Datumstag = 0
5 EVENTCYCLICDATETYPE_YEAR Jeden X Tag im angegebenen Monat
Zeittyp
Wert Konstante Beschreibung
0 EVENTCYCLICTIMETYPE_ONCE Einmalig IPS_SetEventCyclicTimeFrom für Zielzeit
1 EVENTCYCLICTIMETYPE_SECOND Sekündlich
2 EVENTCYCLICTIMETYPE_MINUTE Minütlich
3 EVENTCYCLICTIMETYPE_HOUR Stündlich
Zeitintervall
Wert Konstante Beschreibung
0 EVENTCYCLICTIMETYPE_ONCE 0 (Keine Auswertung)
1 EVENTCYCLICTIMETYPE_SECOND Alle X Sekunden
2 EVENTCYCLICTIMETYPE_MINUTE Alle X Minuten
3 EVENTCYCLICTIMETYPE_HOUR Alle X Stunden

Rückgabewert

Konnte die Funktion erfolgreich ausgeführt werden, liefert sie als Ergebnis TRUE, andernfalls FALSE.

Beschreibung

Um ein zyklisches Ereignis zu konfigurieren, muss festgelegt werden, in welchen Intervallen dieses ausgeführt werden soll. Dazu gehört ein Datumsintervall, welches das Intervall in einem bestimmten Tages-, Wochen-, Monats- oder Jahresrhythmus festlegt und ein Zeitintervall, welches an dem jeweiligen Tag ein sekunden-, minuten- oder stundenbasierendes Intervall festlegt.

Wird der Datumstyp “Wöchentlich” gewählt, so besteht die Möglichkeit, im Parameter Datumstage die Tage der Woche zu bestimmen, an denen das Ereignis gestartet werden soll. Bei monatlichem oder jährlichem Datumstyp wird der Tag im Monat im Parameter Datumstagesintervall angegeben. Bei allen anderen Typen kann der Parameter mit dem Platzhalter 0 angegeben werden.

Warning

Spitzfindigkeiten:

  • (Monatlich) Bei der Variante “Am X. Tag alle Y Monate” bedeutet X > 31, dass der letzte Tag im Monat gewählt wird. Wird z.B. X = 31 gewählt, so werden nur Monate berücksichtigt, die 31 Tage haben.
  • (Monatlich) Bei der Variante “Am X. Wochentag alle Y Monate” bedeutet X > 5, dass die letzte Woche gewählt wird. Wird z.B. X = 5 gewählt, so werden nur Monate berücksichtigt, die einen jeweiligen 5. Wochentag haben.
  • (Jährlich) Bei der Variante “Am X. Tag im Monat Y” wird ein Timer nur ausgeführt, wenn X ein gültiger Tag in diesem Monat ist, andernfalls wird der Timer nicht ausgeführt.

Beispiel

//Zum aktuellen Zeitpunkt alle 8 Wochen etwas ausführen
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, (int)date("H"), (int)date("i"), (int)date("s"));
IPS_SetEventCyclicDateFrom($eid, (int)date("d"), (int)date("m"), (int)date("Y"));
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_DAY, 8 * 7 /* Alle 8 Wochen */, 0, 0, EVENTCYCLICTIMETYPE_ONCE, 0);
IPS_SetEventActive($eid, true);

//Jeden Tag alle 6 Stunden ab 0 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_DAY, 1 /* Jeden Tag */, 0, 0, EVENTCYCLICTIMETYPE_HOUR, 6 /* Alle 6 Stunden */);   

//Alle 2 Minuten ab 0 Uhr bis 12 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_NONE /* Keine Datumsüberprüfung */, 0, 0, 0, EVENTCYCLICTIMETYPE_MINUTE, 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeTo($eid, 12, 0, 0);

//Alle 2 Minuten zwischen 8 Uhr und 10 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_NONE /* Keine Datumsüberprüfung */, 0, 0, 0, EVENTCYCLICTIMETYPE_MINUTE, 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeFrom($eid, 8, 0, 0);
IPS_SetEventCyclicTimeTo($eid, 10, 0, 0);

//Alle 2 Wochen am Montag+Mittwoch einmalig um genau 0:00 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_WEEK, 2 /* Alle 2 Wochen */, EVENT_DAY_MONDAY + EVENT_DAY_WEDNESDAY, 0, EVENTCYCLICTIMETYPE_ONCE, 0); 

//Täglich um 15 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, 15, 0, 0);

//Am ersten Tag im Monat um 0 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_MONTH, 1 /* Jeden Monat */, 0 /* Egal welcher Tag */, 1 /* Erster Tag im Monat */, EVENTCYCLICTIMETYPE_ONCE, 0); 

//Am ersten Freitag im Monat um 0 Uhr
$eid = IPS_CreateEvent(EVENTTYPE_CYCLIC);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, EVENTCYCLICDATETYPE_MONTH, 1 /* Jeden Monat */, EVENT_DAY_FRIDAY, 1 /* Erster Freitag im Monat */, EVENTCYCLICTIMETYPE_ONCE, 0);
Haben Sie noch Fragen?