Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何在Google Apps脚本中添加一天事件的开始日期_Date_Google Apps Script_Calendar - Fatal编程技术网

Date 如何在Google Apps脚本中添加一天事件的开始日期

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

我有一个GoogleApps脚本,可以获取非全天日历事件的开始和结束时间。活动从16日的8:00到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
}

这一个似乎输出为字符串。当我尝试用它创建日历事件时,它会说“异常:参数(字符串、字符串、字符串)与CalendarApp.calendar.createEvent的方法签名不匹配。”它肯定不是字符串。你能看到
新日期()
吗。也许开始是一个字符串。它必须是Date(),否则就没有这些方法。这里有一个isDate()函数,您可以使用`函数isDate(date){return(Object.prototype.toString.call(date)=='[Object date]';}`如果我知道开始日期是3月21日上午8:00,我如何将其转换为日期?下面是