如何在 Google Apps 脚本中添加一天的活动开始日期
How can I add one day the start date of an event in Google Apps Script
我有一个 google 应用程序脚本,用于获取非全天日历事件的开始和结束时间。活动从 8:00 到 16 日的 9:00,我有一个脚本可以将其复制到 17 日,然后是 18 日,依此类推。我知道你可能在想我应该让事件每天重复,但我使用的是一个忽略重复事件的程序。
这是我目前的情况:
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
}
我有一个 google 应用程序脚本,用于获取非全天日历事件的开始和结束时间。活动从 8:00 到 16 日的 9:00,我有一个脚本可以将其复制到 17 日,然后是 18 日,依此类推。我知道你可能在想我应该让事件每天重复,但我使用的是一个忽略重复事件的程序。
这是我目前的情况:
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
}