从导入日期来自电子表格创建Google日历事件时出现setHours()错误 - Apps脚本

时间:2015-02-20 18:42:53

标签: javascript datetime google-apps-script google-sheets google-calendar-api

我有一个表格,要求用户提供活动标题和开始时间。然后将信息插入Google电子表格中。我写了一个脚本,将这些信息导入Google日历。但是,我希望每个输入的事件的结束时间比开始时间晚2小时。是否有捷径可寻?这是我到目前为止所拥有的。

var title = column[3];
var startDate = column[5];        // 5th column in spreadsheet "Start Date and Time"

cal1.createEvent(title, new Date(startDate), new Date(startDate.setHours(startDate.getHours() + 2));

我收到错误:

TypeError: Cannot find function sethours in object Fri Feb 27 2015 08:00:00 GMT-0500 (EST

1 个答案:

答案 0 :(得分:0)

startDate的电子表格返回的值未被强制转换为日期类型。您需要使用new Date()将其设为日期:

var startDate = column[5];        // 5th column in spreadsheet "Start Date and Time"
startDate = new Date(startDate);

这是我运行的测试函数,对代码进行了一些更改:

function testIt() {

  var title = column[3];
  var startDate = column[5];        // 5th column in spreadsheet "Start Date and Time"

  startDate = new Date(startDate);
  var startHr = startDate.getHours();

  var eventEndTime = new Date(startDate);
  eventEndTime.setHours(startHr + 2);

  cal1.createEvent(title, startDate, eventEndTime);
};