0 votes
in SoSci Survey (dt.) by s324582 (165 points)

Ich plane aktuell eine Tagebuchstudie, die mit einem Eingangsfragebogen startet und dann über zwei Arbeitswochen (Mo-Fr) je drei mal am Tag einen Fragebogen beinhaltet. Diese Fragebögen sind an allen Wochentagen außer Montag identisch. Dennoch sind die zwei Wochen wichtig für das Studiendesign.
Da ich viele TN rekrutieren muss, sollte die Studie auf jeden Fall über mehrere Monate laufen. Ich habe damit begonnen, im php-Code des Eingangsfragebogens mit mailSchedule(false, 2, strtotime ('next Monday 05:00:00')); den automatisierten Versand der Serienmail des ersten montäglichen Fragebogens nach dem Ausfüllen des Eingangsfragebogens zu programmieren. Nun frage ich mich: wie kann ich einstellen, dass Personen, die sich selbst rekrutieren während die Studie schon läuft, und den Eingangsfragebogen z.B. Mittwochs ausfüllen, dann AUCH wiederum am nächsten Montag neu starten?
Ich muss ja für jeden Zeitpunkt eine eigene Serienmail aufsetzen, wie ich verstanden habe, richtig? Aber muss ich dies auch über das eigentliche Studiendesign der zwei Wochen hinaus machen, wenn sich die Studie eigentlich immer Montags wiederholen soll?

Vielen Dank für Ihre Hilfe!

1 Answer

0 votes
by SoSci Survey (352k points)

Nun frage ich mich: wie kann ich einstellen, dass Personen, die sich selbst rekrutieren während die Studie schon läuft, und den Eingangsfragebogen z.B. Mittwochs ausfüllen, dann AUCH wiederum am nächsten Montag neu starten?

Die Funktion strtotime() kümmert sich darum, wenn Sie 'next Monday' verwenden, wie Sie es gerade tun. Sie können sich das Leben aber ein wenig vereinfachen, indem Sie das Start-Datum nur einmal ausrechnen, und dann immer als Referenz verwenden.

$first = strtotime('next Monday 05:00:00');

mailSchedule(false, 2, $first);
mailSchedule(false, 3, strtotime('12:00:00', $first));
mailSchedule(false, 4, strtotime('18:00:00', $first));

mailSchedule(false, 5, strtotime('+1 day 05:00:00', $first));
mailSchedule(false, 6, strtotime('+1 day 12:00:00', $first));
mailSchedule(false, 7, strtotime('+1 day 18:00:00', $first));

Testen Sie auf alle Fälle mal, ob da die richtiigen Zeitpunkte herauskommen, aber im Großen und Ganzen müsste es passen.

Ich muss ja für jeden Zeitpunkt eine eigene Serienmail aufsetzen, wie ich verstanden habe, richtig?

Ja, 14 Tage mal 3 Mails = 42 Kopien der Serienmail.

muss ich dies auch über das eigentliche Studiendesign der zwei Wochen hinaus machen, wenn sich die Studie eigentlich immer Montags wiederholen soll?

Ja, weil jede Serienmail an jeden Adressaten nur max. einmal verschickt wird.

by s324582 (165 points)
Vielen Dank für Ihre Antwort. Ich habe nun folgendermaßen versucht, eine Lösung zu finden:
Ich habe im Eingangsfragebogen:
mailSchedule(false, 2, strtotime ('next Monday 05:00:00'));
mailSchedule(false, 4, strtotime ('next Monday 13:00:00'));
mailSchedule(false, 7, strtotime ('next Monday 20:00:00'));

Und dann im Montag-Morgen-Fragebogen:
mailSchedule(false, 8, strtotime ('next Tuesday 05:00:00'));
mailSchedule(false, 9, strtotime ('next Tuesday 13:00:00'));
mailSchedule(false, 10, strtotime ('next Tuesday 20:00:00'));
mailSchedule(false, 11, strtotime ('next Wednesday 05:00:00'));
mailSchedule(false, 12, strtotime ('next Wednesday 13:00:00'));
mailSchedule(false, 13, strtotime ('next Wednesday 20:00:00'));

und so weiter, für die zweite Woche dann mit "+7days" gearbeitet.

Wenn ich es richtig verstehe, sollte es so klappen. Meine einzige Sorge wäre, was passiert, wenn jemand am Montag den Eingangsfragebogen ausfüllt und dann den morgendlichen Montag-Fragebogen nicht erhält. Oder impliziert "NEXT Monday", dass es dann der nächste Montag ist, wenn heute Montag ist? Gibt es eine Möglichkeit, dieses Problem zu lösen? zum Beispiel ein FIlter, der sagt, wenn es bereits nach 5 Uhr am Montag ist, dann soll erst am nächsten Montag die Serienmail versendet werden? Oder wäre hierfür Ihr Vorschlag mit §first sinnvoll, oder löst das das Problem auch nicht?
 
Vielen Dank für Ihre Hilfe!
by SoSci Survey (352k points)
> Wenn ich es richtig verstehe, sollte es so klappen.

Nein, denn wenn jemand am Dienstag startet, ist "next Wednesday" und "next Monday" nicht in derselben Woche. Daher mein o.g. Lösungsvorschlag. Da wird erst ein Referenzzeitpunkt $first definiert, und von diesem dann alles anderen berechnet.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...