如何将“yyyy-mm-dd”Google Forms字段转换为日期类型?

时间:2015-01-02 11:59:37

标签: google-apps-script google-calendar-api google-form

在Google Apps脚本中,我尝试在表单提交后插入日历事件。 在FormSubmit上,我有以下代码:

  var startDate = formData.namedValues["From day"];
  var endDate = formData.namedValues["To day"];
  var cal = CalendarApp.getCalendarById("mycalendarid");

  var startDatecal = new Date(startDate);
  var endDatecal = new Date(endDate);

  Logger.log(startDate); 
  Logger.log(endDate); 
  Logger.log(startDatecal); 
  Logger.log(endDatecal); 

  cal.createEvent(name, startDatecal, endDatecal);

问题是电子表格中的日期格式“yyyy-mm-dd”无法被Date()函数识别,这里是日志:

[15-01-02 12:50:08:752 CET] [2015-01-02]
[15-01-02 12:50:08:753 CET] [2015-01-03] 
[15-01-02 12:50:08:753 CET] Thu Jan 01 01:00:00 GMT+01:00
[15-01-02 12:50:08:754 CET] Thu Jan 01 01:00:00 GMT+01:00 1970

我的问题是:

  • 如何以不依赖的方式和电子表格的区域设置正确获取表单中的日期?如果不可能,如何将“yyyy-mm-dd”格式转换为Date()函数可理解的内容?
  • 如何将它转换为Date对象呢?

1 个答案:

答案 0 :(得分:0)

startDate和endDate看起来像一个数组,使用第一个元素,即

var startDate = formData.namedValues["From day"][0];
var endDate = formData.namedValues["To day"][0];

以这种方式传递yyyy-mm-dd格式的字符串,这是内置的JS Date对象应该理解的。