You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qualtrics中计算两个时间的差值(卧床时长)

计算卧床时长的Qualtrics代码实现

需求说明

受访者通过flatpickr时间选择器在不同问题中分别记录入睡时间(time to bed)和起床时间(time out of bed),时间格式示例:入睡时间为11:00 PM、起床时间为8:00 AM。需计算卧床时长=起床时间-入睡时间,结果以分钟为单位。

尝试的实现代码

Qualtrics.SurveyEngine.addOnload(function()
{
    /*页面加载时执行的代码*/

});

Qualtrics.SurveyEngine.addOnReady(function()
{
      // 获取入睡和起床时间问题的输入值
    var timeToBed = "${q://QID4/ChoiceTextEntryValue}";
    var timeOutOfBed = "${q://QID12/ChoiceTextEntryValue}";


    // 为两个时间创建Date对象
    var timeToBedDate = new Date("1/1/2000 " + timeToBed);
    var timeOutOfBedDate = new Date("1/1/2000 " + timeOutOfBed);
    

    // 判断起床时间是否早于入睡时间(即跨天情况)
    if (timeOutOfBed < timeToBed) {
        timeOutOfBedDate.setDate(timeOutOfBedDate.getDate() + 1);
    }
    
    // 计算时长差(单位:分钟)
    var timeInBedMinutes = (timeOutOfBedDate - timeToBedDate) / 1000 / 60;

    // 将结果保存为嵌入式数据变量
    Qualtrics.SurveyEngine.setEmbeddedData("timeInBed", timeInBedMinutes);

});

Qualtrics.SurveyEngine.addOnUnload(function()
{
    /*页面卸载时执行的代码*/

});

代码说明

  • 通过Qualtrics内置变量${q://QIDx/ChoiceTextEntryValue}获取对应问题的时间输入值
  • 借助固定日期(2000/1/1)创建Date对象,避免日期差异干扰时间计算
  • 处理跨天场景:若起床时间字符串小于入睡时间字符串,将起床时间的日期加1天
  • 计算两个Date对象的毫秒差,转换为分钟后保存为嵌入式数据timeInBed

内容的提问来源于stack exchange,提问作者Jonathan Cloughesy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:03:09