确定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库来满足这一要求,所以非常希望能够了解它是否可行。
答案 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);