0 votes
in SoSci Survey (dt.) by s183718 (120 points)

Guten Tag,

ich würde gerne die Option nutzen, die Bearbeitungszeit auf ein bestimmtes Zeitfenster innerhalb eines Tages zu beschränken, da ich eine mehrwellige Befragung mit 2 Fragebögen pro Tag starte, welche sich zeitlich nicht überlappen sollen. Nun habe ich mich an folgender Hilfe orientiert (https://www.soscisurvey.de/help/doku.php/de:create:functions:pagestop) und testweise untenstehenden php-Code genutzt:

if ((date('2024-06-10') < 15) || (date('2024-06-10') > 17)) {
text('ZE01');
buttonHide();
pageStop();
}

Der Text erscheint jedoch auch im Zeitfenster zwischen 15-17 Uhr, in dem ja eigentlich der Fragebögen ausgefüllt werden sollte (der Erhebungszeitraum insgesamt wurde schon richtig angepasst). Können Sie mir sagen, warum? Falls es eine Funktion gibt, bei der jeden Tag automatisch das richtige Datum eingesetzt wird im php-Code, nutze ich auch gerne solch eine.

Vielen Dank und freundliche Grüße!

1 Answer

0 votes
by SoSci Survey (327k points)

Wenn Sie die Stunde des Tages ermitteln möchten, ist der passende Funktionsaufruf date('H')

if ((date('H') < 15) || (date('H') > 17)) {
    text('ZE01');
    buttonHide();
    pageStop();
}

Dieser Code zeigt den Text ZE01 vor 14:59 und ab 18:00 Uhr.

by s183718 (120 points)
Danke für die Antwort. Ich möchte gerne pro Tag ein Zeitfenster für eine Bearbeitung von 4 Uhr bis 12 Uhr einstellen, verstehe ich es richtig, dass der obige Code dann genau das Gegenteil ermöglicht, also in Ihrem Beispiel von 15-17 Uhr gerade KEINE Bearbeitung möglich ist? Wie wäre dann der Code, wenn ich jeden Tag eine Bearbeitung von 4-12 Uhr ermöglichen möchte?
by SoSci Survey (327k points)
Der obige Code zeigt vor 15 Uhr und ab 18 Uhr einen Text und lässt dann dank buttonHide() keine weitere Bearbeitung zu. Also, wenn ich es richtig verstehe, dann genau die von Ihnen gewünschte Funktionalität.

date('H') liefert einfach die Stunde der Uhrzeit im 24-Stunden-Format. Den Filter darunter können Sie nach Belieben gestalten, vgl. https://www.soscisurvey.de/help/doku.php/de:create:php-filters, https://www.soscisurvey.de/help/doku.php/de:create:filter-boolean und https://www.soscisurvey.de/help/doku.php/de:create:functions:pagestop#beispielscreenout
by s183718 (120 points)
Vielen Dank für die Erklärung. Ich habe insgesamt 10 Fragebögen und pro Tag (Mo-Fr) sollen jeweils 2 ausgefüllt werden. Dabei soll immer nur auf einen von den 10 Fragebögen zu einer bestimmten Zeit zugegriffen werden können. Daher würde ich gerne ein Datum ergänzen. Wenn ich es richtig verstehe wäre der folgende Code so korrekt und ermöglicht dann die Bearbeitung am 10.6. von 4-12 Uhr?

if ((date('2024-06-10') < 4) || (date('2024-06-10') > 11)) {
text('ZE01');
buttonHide();
pageStop();
}
by SoSci Survey (327k points)
Nein, dieser Code ist falsch. Die date()-Funktion liefert einen String zu einem Zeitstempel.

Was Sie wahrschienlich meinen ist:

(time() < strtotime('2024-06-10 04:00:00')) || (time() > strtotime('2024-06-10 11:00:00'))
by s183718 (120 points)
Vielen Dank, genau, das meine ich.

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

...