0 votes
in SoSci Survey (dt.) by s251031 (110 points)
edited by s251031

Hallo,
ich versuche gerade meine Umfrage nur zu bestimmten Zeiten freizugeben (Morgens 3 Stunden und Abends 3 Stunden). Da ich aber nicht nur in Deutschland erheben möchte, stellt sich nun die Frage, ob ich irgendwie die Lokalzeit oder Zeitzone einlesen kann.

Oder gibt es eine Möglichkeit die Umfrage immer zu pausieren und manuell zu aktivieren in dem Zeitraum wo ich Antworten möchte?

Welche Uhrzeit benutzt die time() Funktion?

LG!

1 Answer

0 votes
by SoSci Survey (328k points)

Die Zeitzone der Befragten kann man frühestens auf Seite 2 des Fragebogens verwenden - denn sie muss zunächst im Browser der Befragten "erhoben" werden.

Welche Uhrzeit benutzt die time() Funktion?

Die time()-Funktion liefert einen Unix-Zeitstempel, und der ist immer UTC.

Die Freage ist eher, womit Sie vergleichen. Wenn Sie strtotime() verwenden, dann kommt nämlich die Zeitzone zum tragen. Standarmäßig aus das auf www.soscisurvey.de die ME(S)Z - aber sie können in den Projekt-Einstellungen im Karteireiter "Spezielles" auch eine andere einstellen. Das können Sie auch nach Bedarf ändern.

Oder gibt es eine Möglichkeit die Umfrage immer zu pausieren und manuell zu aktivieren in dem Zeitraum wo ich Antworten möchte?

Nun, Sie könnten auf der ersten Seite z.B. folgenden PHP-Code platzieren:

if (true) {
    text('XX01');
    buttonHide();
    pageStop();
}

Solange dort true steht, ist der Fragebogen blockiert, wenn Sie das in false ändern, läuft alles wieder wie gewohnt.

by s251031 (110 points)
Ich habe diesen Code von einer anderen hier gestellten Frage übernommen. Laut UTC wäre es jetzt gerade 14:15 (16:15 CET). Die If-Clause wird nicht getriggert, tut es aber wenn ich den Zeitraum von 16:00 auf 17:00 anpasse. Gibt es einen weg, wie ich in der Umfrage sehen kann, welchen Wert $now gerade angenommen hat?

$now = time();
if (!(
  ($now > strtotime('05:59:59')) &&
  ($now < strtotime('10:30:00')) Or ($now > strtotime('15:59:59')) &&
  ($now < strtotime('21:00:00'))
)) {
  text('Z102');
  buttonHide();
  pageStop();
}
by SoSci Survey (328k points)
>  Laut UTC wäre es jetzt gerade 14:15 (16:15 CET). Die If-Clause wird nicht getriggert

Das ist korrekt, denn strtotime('15:59:59') liefert (wenn Sie an der Zeitzone des Projekts nichts geändert haben) den Zeitstempel für 15:59:59 GMT+2 = 13:59:59 UTC.

Wie gesagt: strtotime() ist Zeitzonen-abhängig, time() nicht.

Abgesehen davon sind Ihre Klammern nicht ganz korrekt. Das && hat eine höhere Priorität als das "Or".

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

...