确定Google表单回复的正确日期格式

时间:2018-01-20 20:31:16

标签: date google-apps-script google-form

确定Google表单回复的正确日期格式(dd / mm或mm / dd)的最佳方法是什么。

当我使用namedValues对象时:

function onFormSubmit(e){
 var namedValues = e.namedValues;
 var date = namedValues['Date']; // Date=[05/06/2018]
 var date = new Date(date);
 Logger.log(date); //Sun May 06 00:00:00 GMT+10:00 2018
}

当我使用电子表格中的值时:

function onFormSubmit(e){  
  var range = e.range;
  var row = range.getRow();  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Form Responses 1');
  var date = sheet.getRange(row,2).getValue();
  Logger.log(date); //Mon Jun 05 00:00:00 GMT+10:00 2018
}

我不知道自己是否应该这样,但是我在使用onFormSubmit触发器中的电子表格中的值时犹豫不决,因为我在过去经历过不稳定,我认为触发器在数据出现之前就已经运行了发布到电子表格。

我在Google表单文档中找不到任何内容,说明日期响应是否始终采用一致的格式。如果它总是dd / mm / yyyy,我可以使用字符串部分构建日期。

有没有办法从namedValues对象中确定正确的日期格式?

P.S我宁愿不使用moment.js库来满足这一要求,所以非常希望能够了解它是否可行。

1 个答案:

答案 0 :(得分:0)

您的Google表单会不断以相同的格式提交日期,但您的表单可能会更改格式的外观。

此外,现在应用程序脚本中内置了一个日期format utility。您可以将日期字符串更改为所需的格式。

 // This formats the date as Greenwich Mean Time in the format
 // year-month-dateThour-minute-second.
 var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
 Logger.log(formattedDate);