使用Google Apps脚本提交自定义表单的时间戳

时间:2014-10-04 18:00:51

标签: google-apps-script

我想创建一个数据收集表单,其中包含一个图像上传字段。我尝试了Google表单,它本身不支持文件上传,但我找到了这个示例:Form and file upload with htmlService and app script not working

我设法使用图片上传进行配置,但是,原生Google表单在电子表格回复中确实有一个时间戳列。

我试过了:

var timestamp = theForm.getTimestamp();

但是没有用......

如何获取响应时间戳?

代码摘录:

function processForm(theForm) {
  var fileBlob = theForm.myFile;
  var folder = DriveApp.getFolderById(folderId);
  var doc = folder.createFile(fileBlob);

  // Fill in response template
  var template = HtmlService.createTemplateFromFile('Thanks.html');

  var name = template.name = theForm.name;
  var email = template.email = theForm.email;
  var timestamp = template.timestamp = theForm.getTimestamp();

  // Record submission in spreadsheet
  var sheet = SpreadsheetApp.openById(submissionSSKey).getSheets()[0];
  var lastRow = sheet.getLastRow();
  var targetRange = sheet.getRange(lastRow+1, 1, 1, 5).setValues([[timestamp,name,department,message,email,fileUrl]]);

  // Return HTML text for display in page.
  return template.evaluate().getContent();
}

1 个答案:

答案 0 :(得分:4)

HTML表单在提交时不会自动将任何时间戳传递给服务器,就像Google Forms一样。您必须自己生成该时间戳。 new Date()会做你想做的事:

var timestamp = template.timestamp = new Date();

如果您需要将此日期对象输出到页面中的屏幕,则需要通过格式化将其设置为人类可读。您可以使用Utilities.formatDate() method执行此操作。