问题类型 - 日期
From LimeSurvey Manual
简短描述
此问题类型可用于询问特定的日期、时间,或日期与时间的组合。参与者可以从弹出式日历或下拉框中选择值。调查管理员可以设置验证、最小日期和/或最大日期。支持多种日期和时间格式。

常规选项
必答题
说明
此选项可以使管理员要求受访者回答某些问题。如果必答题没有回答,那么受访者不能继续答题。如果你有一个包含多个子问题的问题,并且只有几个子问题必选回答,那可以使用 逻辑 标签下的最少需要回答的答案属性。
可用选项
- 开
- 关 (默认)
相关性方程
条件
说明
如果相关性方程的值是 "1" 或 "true", 那问题就是在调查中就是"相关的" ,比如 是就会在调查中显示,如果不是,问题就会隐藏起来。任何调查的问题都允许你指定一个指定一个相关方程式。这个函数是条件 的继任者,并支持更多更复杂的条件逻辑。
语法高亮
每次你在保存相关方程式的时候,系统都会评估并突出显示语法。因此任何错误都会使用颜色标记出来,以便你能快速的发现并修复。
有效值
- 任何使用 表达式脚本 语法的方程式, 不使用花括号。
示例
这里有个 语法突出显示的好例子。
显示
显示下拉框 (dropdown_dates)
描述
如果启用,日期/时间问题类型将向受访者显示一个下拉框,供其选择日期/时间,而不是默认的弹出窗口。
可用选项
- 开
- 关(默认)
示例
如果启用该选项,问题将以如下方式显示:

隐藏提示 (hide_tip)
描述
大多数问题通常会包含一条提示,例如“请选择以下选项之一”,或关于如何填写该问题的提示文字。此属性可让您关闭或开启这些提示。
这些提示包含验证条件消息(例如答案的最小/最大数量,最小/最大/等于合计值)。如果启用 hide_tip,这些消息将被隐藏。但是,如果用户输入了无效的资料,提示就会显示。提示将以红色显示,一旦满足验证条件,就会变为绿色。
可用选项
- 开启 - 隐藏提示;
- 关闭(默认)。
月显示风格 (month_display_style)
描述
月份可以通过三种方式向受访者显示:使用短名称(Jan、Feb 等)、全名(January、February 等),或月份在年历中的数字/位置(01 表示一月,02 表示二月,依此类推)。
可用选项
- 短名称
- 全名
- 数字
倒置答案顺序(reverse)
描述
如果启用,答案的顺序将被倒置。
可用选项
- 开启
- 关闭(默认)
示例
假设您要使用阵列(数字)问题类型。如果禁用此选项(默认值),则调查参与者可以选择的答案为:“1, 2, 3, ... , 10”。如果启用,该设置将倒置可用答案的顺序:“10, 9, 8, ... , 1”。
问题主题 (question_theme)
描述
此选项允许您为相应的问题使用自定义主题。
可用选项
- 您创建的问题主题,位于佈景主題面板中的问题主题下。
请参阅:问题主题
说明
如果启用,这个问题就会被隐藏起来 - 不会被调查的参与者看到。这个函数可用在以下场景使用:
- 如果你不想在屏幕上显示一个你预填了一条链接的问题。这样会覆盖在调查中的使用的任何条件,因为每个问题都不是内嵌在网页中的。
- 如果你想在运行中通过演示存储或是计算一个数值。
可用选项
- 开
- 关 (默认)
CSS class (css_class)
说明
如果你要在某些问题里添加特殊的 CSS 类,你可以在这个框里输入 CSS 类的名字。确保在每个不同的类名之间保留一个空格。
有效值
- 在 CSS 类名之间都有一个空格的任意字符串。
最小日期 (date_min)
描述
此问题属性可用于设置日期问题的最小值(采用 y-m-d 格式或任何有效的英文字符串,详见下文)。它适用于弹出式和下拉式两种显示选项。 如果未设置最小日期,则默认使用 1.1.1900。
有效值
- 任何 YYYY-MM-DD 格式的日期值(例如 2017-08-24);
- 任何年份值;
- 任何 英文字符串:"now"、"-10 years"、"tomorrow";
- 对另一个日期/时间问题的引用:AnotherDateQuestion(使用问题代码);
- 表达式:使用表达式可以动态计算最小日期。例如,您可以输入 date("Y-m-d",strtotime(departuredate)+3*60*60*24),将上一个答案中的日期加 3 天作为当前问题的最小值。
最大日期 (date_max)
描述
此问题属性可用于设置日期问题的最大值(采用 y-m-d 格式或任何其他有效的英文字符串,更多选项请参见下文)。它适用于弹出式和下拉式两种显示选项。
有效值
- 任何格式为 YYYY-MM-DD 的日期值(例如:2018-08-24);
- 任何年份值;
- 任何英文字符串:"now"、"-10 years"、"tomorrow";
- 引用另一个日期/时间问题:AnotherDateQuestion(使用问题代码);
- 表达式:使用表达式可以动态计算日期。例如,您可以将上一个答案中的日期加 3 天作为当前问题的最大日期,输入如下:date("Y-m-d",strtotime(departuredate)+3*60*60*24)。
可打印调查的相关性帮助 (printable_survey_relevance_help)
说明
如果要打印调查,也可以打印每个问题的相关性方程式。 但是,如果您想提供的是解释而不是印刷表格上的表达式,请在此框中填写相关性方程式的文字说明。
有效值
- 任何你想在可打印表单上显示的文本或数字。
输入
日期/时间格式
描述
此问题选项可用于指定自定义日期格式。如果留空,将使用调查日期格式。
有效值
- 可使用 d/dd、m/mm、yy/yyyy、H/HH、M/MM 格式来显示日期和/或时间,同时可使用 "-"、"."、"/"、":" 作为分隔符。
示例
- yyyy-mm-dd - 年-月-日;
- dd.mm.yyyy HH:MM - 日.月.年 小时:分钟;
- HH:MM - 小时:分钟(只能选择时间);
- yyyy/mm - 年/月。
分步间隔 (minute_step_interval)
描述
仅当输入格式使用分钟(“MM”)时才会使用此设置。
有效值
- 任何小于 60 的数值。输入大于 60 的值是多余的 -> 下拉框中可选的答案将只显示“0”或“00”。
示例
在下面的示例中,分步间隔选项被设置为 7:

逻辑
随机题组名称 (random_group)
描述
该设置会将问题归入指定的随机题组,该组中的所有问题将以随机顺序显示给调查受访者。
您可以在ExpressionScript 示例调查中找到使用随机题组名称的示例调查。
有效值
输入任意字符串即可(例如:'group1')。在随机题组名称框中设置了相同字符串的所有问题,其在调查中的位置将被随机化(即在彼此之间随机交换)。
预览
预览问题时,请使用预览调查功能,而不要使用预览题组功能,因为据报告后者不会以随机顺序显示问题。
问题验证等式(em_validation_q)
描述
这是一个用于验证整个问题的方程式(例如,对于多答案问题,对其所有部分进行整体验证)。如果问题未通过验证条件,则会显示 em_validation_q_tip 信息(使用 CSS 样式 .error)。该提示使用 .em_q_fn_validation CSS 样式,该样式在 template.css 中默认是隐藏的。
此功能与子问题验证等式(em_validation_sq 选项)的主要区别在于:对于此功能,如果问题(或问题的某些部分)未通过验证,则可以显示错误信息。对于子问题验证,每个文本输入单元格(例如在阵列问题类型中,也可应用于单项输入的问题类型)的背景颜色将显示为(浅)红色。
有效值
- 任何使用 ExpressionScript 语法的方程式,不带外围花括号。
示例
- 您希望通过多短文本问题收集用户的人口统计信息,并希望验证用户输入的是有效的电子邮件地址和电话号码。
此示例显示了答案无效时问题的外观:

下面是只有一个答案无效时的外观:

以下是编辑问题以输入这些信息的方法:

下面是 显示逻辑文件 输出的一部分,可用于检查表达式的准确性,并确保没有语法错误:

如您所见,验证方程式会测试电子邮件和电话号码是否均为空,或者是否匹配正规表达式筛选。
只有当电话或电子邮件看起来无效时,验证提示才会显示警告信息。
如果您想将上述示例导入到您的 LimeSurvey 安装中,请下载以下 .lsq 文件:Em_validation_q_example.zip。
整个问题验证等式的提示 (em_validation_q_tip)
描述
如果您使用了问题验证等式,可以通过此框显示一条可选的消息,作为关于如何填写该问题的问题提示。
有效值
- 任何使用 ExpressionScript 语法的字符串或等式。
示例
请参阅 wiki 中问题验证等式部分的示例——它展示了如何定制提示,以显示多短文本问题中哪些部分未通过验证条件。
其他
在可打印视图里插入分页符 (page_break)
说明
仅当您实际从“可打印视图”打印调查时,此属性才有效。 它强制在问题之前“分页”。
可用选项
- 开
- 关 (默认)
统计
显示图表 (display_chart)
说明
这个属性允许管理员决定是否在参与者填完调查之后,向他们展示含有调查结果的图表。
可用选项
- 开
- 关 (默认)
图表类型 (chart_type)
说明
此属性允许调查管理员选择完成填写调查后将向受访者显示的图表类型。
可用选项
- 条状图
- 饼图
- 雷达
- 线性图
- 图形
- 环形
日期与 ExpressionScript:高级验证和计算
Limesurvey(2.05 及以上版本)可以通过 date_min 和 date_max 字段(见上文)轻松验证日期。请尽可能使用这些字段。如果您需要进行更高级的验证,可以使用 ExpressionScript 和函数 strtotime() 来处理(和计算)日期。该函数会计算从 1970 年 1 月 1 日到指定日期的秒数。
示例: 如果您想在问题文本中显示从出发日期(在上一个问题中询问)到今天已经过去的天数,可以使用表达式 {(strtotime("now")-strtotime(departure))/60/60/24}。
请注意,strtotime() 支持多种格式,但并非所有格式!例如,Limesurvey 的默认日期格式(MM-DD-YYYY)不适用于 strtotime()。为避免出现问题,请将您的调查设置为使用以下日期格式之一:YYYY-MM-DD、YYYY/MM/DD、DD.MM.YYYY、MM/DD/YYYY 或 DD-MM-YYYY。
