0 votes
in SoSci Survey (dt.) by s061410 (130 points)
edited by SoSci Survey

Liebes Support-Team,

ich bin am verzweifeln. Ich möchte über 10 Tage eine Tagebuchstudie mit 4 Messzeitpunkten pro Tag durchführen. Die Anmeldung erfolgt mittels double opt-in (das klappt).
Im Fragebogen zur Bestätigung möchte ich den weiteren Versand der restlichen Fragebogen programmieren (feste Zeitpunkte jeden Tag), aber es funktioniert einfach nicht.

Starten möchte ich mit einem individuell festgelegten Datum (Texteingabe, muss im Datumsformat erfolgen).

Mit diesem Code wollte ich das für den ersten Tag testen, da fehlen noch die restlichen Tage, aber auch der erste funktioniert so nicht:

$eingabe = strtotime (value ('KW02_01'));
$versand = strtotime($eingabe);
mailSchedule (false, 2, $versand, '06:00:00');
mailSchedule (false, 11, $versand, '10:00:00');
mailSchedule (false, 21, $versand, '17:00:00');
mailSchedule (false, 32, $versand, '21:00:00');
$versand2 = strtotime ('+1 day', $eingabe);
mailSchedule (false, 3, $versand2, '06:00:00');
$versand3 = strtotime ('+2 days', $eingabe);
mailSchedule (false, 4, $versand3, '06:00:00');
$versand4 = strtotime ('+3 days', $eingabe);
mailSchedule (false, 5, $versand4, '06:00:00');
$versand5 = strtotime ('+4 days', $eingabe);
mailSchedule (false, 6, $versand5, '06:00:00');
$versand6 = strtotime ('+5 days', $eingabe);
mailSchedule (false, 7, $versand6, '06:00:00');
$versand7 = strtotime ('+6 days', $eingabe);
mailSchedule (false, 8, $versand7, '06:00:00');
$versand8= strtotime ('+7 days', $eingabe);
mailSchedule (false, 9, $versand8, '06:00:00');
$versand9 = strtotime ('+8 days', $eingabe);
mailSchedule (false, 10, $versand9, '06:00:00');
$versand10 = strtotime ('+9 days', $eingabe);
mailSchedule (false, 31, $versand10, '06:00:00');

Die Fehlermeldungen lauten:

The third argument in function mailSchedule() must be a number. The value is invalid.
The funktion mailSchedule() expects a value of type array as parameter no. 4. Yet, a value (06:00:00) of type string was found.

Was mache ich falsch? Wie kann ich den Versand ab dem ausgewählten Datum um die festgelegten Uhrzeiten korrekt programmieren?

Wenn ich das versuche zu testen, bekomme ich die falschen Mails mitten in der Nacht und durcheinander. Die Zeitzone ist aber korrekt eingestellt, mit diesem Code habe ich das geprüft:

html('<p>Es ist jetzt '.date('h').':'.date('i').'</p

Da kommt die korrekte Uhrzeit raus, allerdings im 12 Stunden Format.

Ich weiß leider wirklich nicht mehr weiter und wäre sehr dankbar, wenn sie mir einen Tipp geben könnten, damit ich endlich mit meiner Erhebung loslegen kann.

Liebe Grüße!

1 Answer

0 votes
by SoSci Survey (305k points)

The third argument in function mailSchedule() must be a number.

Meine Vermutung wäre, dass KW02_01 keinen gültigen Zeit-String enthält. Ergänzen Sie zu Beginn doch bitte folgendes:

$eingabe = strtotime (value ('KW02_01'));
$versand = strtotime($eingabe);
debug($eingabe);
debug($versand);

Und weiter unten müssten Sie bei strtotime() nicht die Eingabe verwenden, sondern den Zeitstempel, also

$versand2 = strtotime ('+1 day', $versand);

The funktion mailSchedule() expects a value of type array as parameter no. 4. Yet, a value (06:00:00) of type string was found.

Die Zeit müssen Sie direkt bei strtotime() ergänzen. Das könnte so aussehen:

$versand = strtotime($eingabe.' 06:00:00');

Der vierte Parameter in mailSchedule() hat eine ganz andere Funktion.

asked Jun 11, 2022 in SoSci Survey (dt.) by s061410 (130 points) Weitere Problematik

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

...