我正在处理一个脚本(不是我的),它采用M/D/Y HH:MM:SS
格式的两个日期(开始,结束)并在Google日历中创建一个事件。
现在,我试图将表单更改为具有一个日期(开始)和一个小时持续时间(结束)选项。我希望将持续时间添加到开始日期,然后创建偶数。
我让脚本部分工作,而不是显示为小时的持续时间,它显示为分钟。
我尝试将endDt乘以60(startDt + (endDt * 60)
)和其他一些东西,但到目前为止还没有任何效果。
我认为这是代码的相关部分。最后一行是我的。
var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
var endDt = sheet.getRange(lr,endDtId,1,1).getValue();
var endDt = startDt + endDt;
任何帮助将不胜感激。如果需要,这是整个代码:
var calendarId = "CALENDAR_ID";
var startDtId = 4;
var endDtId = 5;
var titleId = 2;
var titleId2 = 3;
var descId = 6;
var formTimeStampId = 1;
function getLatestAndSubmitToCalendar() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var lr = rows.getLastRow();
var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
var endDt = sheet.getRange(lr,endDtId,1,1).getValue();
var endDt = startDt + endDt;
var subOn = "Added :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by: "+sheet.getRange(lr,titleId,1,1).getValue();
var desc = "Comments :"+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
var title = sheet.getRange(lr,titleId,1,1).getValue()+" - "+sheet.getRange(lr,titleId2,1,1).getValue();
createEvent(calendarId,title,startDt,endDt,desc);
};
function createEvent(calendarId,title,startDt,endDt,desc) {
var cal = CalendarApp.getCalendarById(calendarId);
var start = new Date(startDt);
var end = new Date(endDt);
var loc = 'LOCATION';
var event = cal.createEvent(title, start, end, {
description : desc,
location : loc
});
};
答案 0 :(得分:1)
当我使用调试器运行该代码时,输出如下所示:
您会看到变量endDt
如下所示:
"Thu Jan 15 2015 20:16:19 GMT-0500 (EST)2"
最后见“2”。这没有做任何补充,它连接了文本。另外,您会注意到,中间列显示了变量类型。 sheet
是一个对象。 numRows
是一个数字。 startDt
是日期,endDt
是字符串。您必须知道每一行的变量类型。 Javascript“强制”变量类型。所以你的“日期”可能是一行上的字符串,另一行上的日期类型。
如果您想以小时为增量调整结束日期,并相对于开始时间更改事件结束时间,则可以使用JavaScript setHours()
方法。
function getLatestAndSubmitToCalendar() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet11'); //getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var lr = rows.getLastRow();
var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
var endDt = sheet.getRange(lr,endDtId,1,1).getValue();
var endDt = new Date(endDt);
var endDtHour = endDt.getHours();
var startHour = startDt.getHours();
var newEndingHr = Number(startHour) + Number(endDt);
endDt.setHours(newEndingHr);
var subOn = "Added :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by: "+sheet.getRange(lr,titleId,1,1).getValue();
var desc = "Comments :"+sheet.getRange(lr,descId,1,1).getValue()+"\n"+subOn;
var title = sheet.getRange(lr,titleId,1,1).getValue()+" - "+sheet.getRange(lr,titleId2,1,1).getValue();
createEvent(calendarId,title,startDt,endDt,desc);
};