记录完成Google表单所需的时间

时间:2017-12-22 14:18:49

标签: google-apps-script google-form

我正在尝试记录完成并提交Google表单所需的总时间。 我的逻辑很简单,以下代码将记录并将时间戳作为多项选项。 然后在提交表格时,我们得到一个时间戳,但除此之外,我们会得到最初记录的时间戳作为该问题的答案。

这是我可爱的小代码:

function initial() {
  var form = FormApp.getActiveForm();
  form.getItemById(1589920082).asMultipleChoiceItem().setChoiceValues([new Date()]);
}

我已将触发器设置为OnOpen但令人惊讶的是,每次打开表单时它都不会更新时间戳。从理论上讲,它应该记录表格打开的时间,但我想我在这里遗漏了一些东西。

另一方面,如果我将触发器更改为OnSubmit,它会在每次提交表单时开始记录新的时间戳。但是我不希望这样,因为我们无论如何都要提交提交时间戳。我想要记录的是表格打开的时间。

2 个答案:

答案 0 :(得分:1)

不幸的是,当用户打开填写表单时,您无法执行任何代码,因为在这种情况下不应运行onOpen触发器:

https://developers.google.com/apps-script/guides/triggers/#onopen

  

当用户打开他或她有权编辑的电子表格,文档,或表单时,onOpen()触发器会自动运行。 (只有在打开表单进行编辑时,触发器才会在响应表单时运行。)

Google问题跟踪器中有一个开放的功能请求,在表单打开以进行响应时会引入某种onOpen触发器,您可以" star"它使得更有可能出现:https://issuetracker.google.com/issues/63985842

答案 1 :(得分:1)

我知道这个问题是一年前提出的,但这是我刚想出的解决方法。

有2种形式!第一种形式可以是免责声明,说明等。第二种形式是您希望用户填写的原始形式。开启这两种电子邮件收集功能,这样您就可以知道哪个用户提交了测试。

获取共享链接,并在第一个表单的设置中将该链接添加到确认消息中:

enter image description here

然后将两个表单链接到电子表格中,您将看到每个提交的时间戳。从那里您可以轻松地进行计算以确定持续时间。