0 votes
in SoSci Survey (dt.) by s199377 (150 points)
edited by SoSci Survey

Hallo,

Ich habe eine Frage für mein Sosci-survey Projekt im Rahmen meiner Masterarbeit. Wir machen eine Experience-Sampling Studie mit zwei Bestandteilen: einem einmaligen Intake und eine 10-tägige Alltagsbefragung mit zwei Befragungzeitpunkten pro Tag (1. Zeitpunkt ab 14 Uhr bis 20 Uhr und 2. Zeitpunkt 2 Stunden nach ausfüllen des ersten Fragebogens).

Für den ersten Zeitpunkt habe ich diesen PHP Code erstellt, der sicherstellen sollte, dass Personen den ersten Fragebogen zwischen 14 Uhr und 20 Uhr ausfüllen. Danach besteht kein Zugriff mehr auf den ersten Fragebogen und Teilnehmende erhalten untenstehende Nachricht, wenn ich das richtig verstanden habe.

$info = panelData();
if ($info) {
  $sent = $info['mailsent'];
  if ($sent < strtotime('-6 hours')) {
    html('
    Lieber Teilnehmer, liebe Teilnehmerin,
<br><br>
    bitte beachten Sie, dass die erste von zwei täglichen Befragungen
täglich spätestens um 20.00 Uhr ausgefüllt werden soll. Leider ist die Zeit abgelaufen.
Wir würden uns freuen, wenn Sie morgen wieder teilnehmen.<br><br>

Viele Grüße<br><br>

Ihr Studienteam');
    buttonHide();
    pageStop();

Für den zweiten Zeitpunkt würde ich nun gerne einen PHP Code erstellen, der sicherstellt, dass der zweite Fragebogen bis Ende des Tages (24 Uhr) ausgefüllt wird und danach kein Zugriff mehr besteht. Kann ich dafür denselben Code wie oben nehmen? Was würde ich in diesem Fall nach strtotime eintragen? Da die Teilnehmenden ja variabel zwischen 14 Uhr und 20 Uhr den ersten Fragebogen ausfüllen können, ist die Zeit für den Versand des zweiten Fragebogens ja für jeden Teilnehmenden unterschiedlich. Dh. manche werden ihn um 14 Uhr ausfüllen, da wäre ja die richtige Angabe dann -10hours, manche aber erst um 20 Uhr, da wäre die richtige Angabe ja dann -4hours? Ich hoffe meine Frage ist verständlich.

$info = panelData();
if ($info) {
  $sent = $info['mailsent'];
  if ($sent < strtotime('???')) {
    html('
    Lieber Teilnehmer, liebe Teilnehmerin,
<br><br>
    bitte beachten Sie, dass Sie nach Mail-Versand
(täglich 2 Stunden nach dem ersten Befragungszeitraum) lediglich bis Ende des Tages Zeit haben,
um den täglichen Kurzfragebogen zu bearbeiten. Leider
ist die Zeit abgelaufen.<br><br>

Viele Grüße<br><br>

Ihr Studienteam');
    buttonHide();
    pageStop();
  }
}

Vielen Dank im Voraus und Viele Grüße!

1 Answer

0 votes
by SoSci Survey (328k points)
selected by s199377
 
Best answer

Vorab eine Bitte: Packen Sie so langen HTML-Code nicht direkt in den Fragebogen, sondern legen Sie einen Text im Fragenkatalog an und binden Sie diesen dann mittels text() oder show() statt dem html() ein. Dann bleibt der Code deutlich übersichtlicher und man vermeidet Ärger mit Anführungszeichen.

Wenn Sie den Versandzeitpunkt (mailsent) und strtotime() verwenden, dann ist Ihr Filter relativ zum Versandzeitpunkt. Der erste Code funktioniert, wenn die Mail um 14 Uhr verschickt wird, denn 14 Uhr plus 6 Stunden = 20 Uhr.

ist die Zeit für den Versand des zweiten Fragebogens ja für jeden Teilnehmenden unterschiedlich.

Dann können Sie es wohl nicht relativ prüfen, sondern müssen nachsehen, ob der Tag noch derselbe ist.

$sent = $info['mailsent'];
if (strtotime('00:00:00', $sent) != strtotime('00:00:00')) {

Hier wird geprüft, ob 0 Uhr (am Tag des Versandzeitpunkts) dasselbe (bzw. ein anderes, weil !=) 0 Uhr ist wie heute 0 Uhr.

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

...