Hallo!
Ich habe ein Problem mit der Implementierung einer 'expire' Funktion. Die 'expire' Funktion funktioniert nicht, wobei der Rest des Codes funktioniert.
Folgende Ausgangsüberlegung:
Im Rahmen einer Tagebuchstudie möchte ich täglich eine "Tagesfrage" schicken (jeweils mit der selben Frage), um 18 Uhr. Diese Tagesfrage soll nach 24h ablaufen (wenn sie nicht beantwortet wird), also um 17.59Uhr des Folgetages, bevor die nächste Tagesfrage kommt.
Die ursprüngliche Programmierung sah folgendermaßen aus:
mailSchedule (false, 106, strtotime('+1 day 18:00'), [ 'expire' => strtotime('+2 day 17:59'), 'status' => 'incomplete' ]);
mailSchedule (false, 107, strtotime('+2 day 18:00'), [ 'expire' => strtotime('+3 day 17:59'), 'status' => 'incomplete' ]);
mailSchedule (false, 108, strtotime('+3 day 18:00'), [ 'expire' => strtotime('+4 day 17:59'), 'status' => 'incomplete' ]);
... und so müsste das 112x wiederholt werden; da muß natürlich eine FOR Schleife her;
Die FOR Schleife:
for ($i=0; $i<=109; $i++) {
$Tagesfrage = $i+106; // die ID der Tagesfrage beginnt ab 106, bis 215; man könnte hier vermutlich auch einfach nur die ID 106 nehmen, weil es sowieso immer die selbe Frage ist
$näTag = $i+1; // nächste Tagesfrage geht dann jeweils in +1 Tag raus
$exp24h = $i+2; // Tagesfrage expired 24h nach Rausschicken
mailSchedule (false,$Tagesfrage, strtotime(' + '.$näTag.' day 18:00'), [ 'expire' => strtotime(' + '.$exp24h.' day 17:59'), 'status' => 'incomplete' ]); }
// Ende der FOR Schleife
Problem:
bereits in der ursprünglichen Programmierung funktioniert folgender Code offenbar nicht:
... [ 'expire' => strtotime('+2 day 17:59'), 'status' => 'incomplete' ]);
in der FOR Schleife funktioniert entsprechend der gleiche Teil auch nicht:
....[ 'expire' => strtotime(' + '.$exp24h.' day 17:59'), 'status' => 'incomplete' ]); }
=> Anmerkung: die expire-Funktion funktoniert problemlos, wenn ich anstelle der strtotime-FUnktion einfach nur Sekunden angebe; also das Problem kam erst mit Implementierung der strtotime-FUnktion;
Was funktioniert:
...mailSchedule (false,$Tagesfrage, strtotime(' + '.$näTag.' day 18:00'),....
Meine Frage ans Team:
wie muss ich die strtotime-FUnktion und das '.$exp24h.' implementieren, damit die expire Funktion funktioniert?
Beste Grüße!