Date 如何在Google Apps脚本中添加一天事件的开始日期
我有一个GoogleApps脚本,可以获取非全天日历事件的开始和结束时间。活动从16日的8:00到9:00进行,我等待一个脚本,它将基本上复制到17日,然后是18日,依此类推。我知道你可能在想,我应该让事件每天重复,但我使用的程序忽略了重复的事件 以下是我目前掌握的情况:Date 如何在Google Apps脚本中添加一天事件的开始日期,date,google-apps-script,calendar,Date,Google Apps Script,Calendar,我有一个GoogleApps脚本,可以获取非全天日历事件的开始和结束时间。活动从16日的8:00到9:00进行,我等待一个脚本,它将基本上复制到17日,然后是18日,依此类推。我知道你可能在想,我应该让事件每天重复,但我使用的程序忽略了重复的事件 以下是我目前掌握的情况: function myFunction() { var cal = CalendarApp.getCalendarById('1234@calendar.google.com') var spanish = cal.getEv
function myFunction() {
var cal = CalendarApp.getCalendarById('1234@calendar.google.com')
var spanish = cal.getEventById('12345')
var title = spanish.getTitle()
var desc = spanish.getDescription()
var start = spanish.getStartTime()
var end = spanish.getEndTime()
cal.createEvent(title, START TIME + 1 DAY, END TIME + 1 DAY)
}
任何建议都将不胜感激请尝试:
var newStart=new Date(start.getFullYear(),start.getMonth(),start.getDate()+1);
如果需要时间,您可以添加更多术语
增加一天的最可靠方法是使用毫秒。在一天中添加1大部分时间都有效,但是如果事件发生在一年的最后一天,并且您希望将事件移动一天,那么年份和月份都将不同。因此,获取年份和月份并重复使用,在这种情况下是行不通的 此外,如果原始事件发生在当月的最后一天,则添加一天将把更改的事件放入新的月份,因此在这种情况下,将最后一个事件的月份重新用于该日期将不起作用
function testMoveDateByOneDay() {
var endDate,foundEvent, startDate;
var cal = CalendarApp.getDefaultCalendar();
startDate = new Date();
endDate = new Date();
endDate = endDate.setDate(endDate.getDate() + 1);
var event = cal.createAllDayEvent('Test Event', startDate, endDate)
var eventID = event.getId();
var foundEvent = cal.getEventById(eventID);
var title = foundEvent.getTitle()
var desc = foundEvent.getDescription()
var start = foundEvent.getStartTime();
var end = foundEvent.getEndTime();
//Logger.log(typeof start)
var startInMS = start.getTime() + 86400000;//Add one day in milliseconds
var endInMS = end.getTime() + 86400000;
start = new Date(startInMS);
end = new Date(endInMS);
//Logger.log(typeof start)
event.setTime(start, end);//Change the day of of this event
}
这一个似乎输出为字符串。当我尝试用它创建日历事件时,它会说“异常:参数(字符串、字符串、字符串)与CalendarApp.calendar.createEvent的方法签名不匹配。”它肯定不是字符串。你能看到
新日期()
吗。也许开始是一个字符串。它必须是Date(),否则就没有这些方法。这里有一个isDate()函数,您可以使用`函数isDate(date){return(Object.prototype.toString.call(date)=='[Object date]';}`如果我知道开始日期是3月21日上午8:00,我如何将其转换为日期?下面是