显示本周的日历活动

问题描述 投票:0回答:1

我有一个很好的功能,可以显示本月日历上的所有事件,但我不知道如何将其更改为本周(周一至周日)。

例如,我可以通过将日期更改为今天的日期并添加天数来更改列表。我用Utilities.formatDate尝试了一些东西,但这给了我周数,没有日期。我不知道如何得到这个星期。

function listEvents2() {
  var date = new Date();
  var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
  var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
  var events2 = CalendarApp.getDefaultCalendar().getEvents(firstDay, lastDay);

  var data2 = [];
  data2.push("Deze maand: ");
  if (events2 && events2.length > 0) {
    for (i = 0; i < events2.length; i++) {
      data2.push(events2[i].getTitle()+' : '+Utilities.formatDate(events2[i].getStartTime(),Session.getScriptTimeZone(),"dd MMMM HH:mm")+' - '+Utilities.formatDate(events2[i].getEndTime(),Session.getScriptTimeZone(),"HH:mm"))
    }
    return data2;
  }
  else {
    return ['No events found','',''];
  }
}

我想要一些技巧来实现这一目标。

编辑:也许我需要解释更多。该功能用于带有HtmlService的个人计划表仪表板。还有另一个功能可以列出今天的事件。

google-apps-script google-calendar-api
1个回答
0
投票

您可能会发现此related question有用。它可以帮助您获得星期一(如果您希望您的星期从星期日到星期六,可以将其更改为星期日)。

您可以将其用作firstDay,然后您的lastDay比该日期晚6天,所以类似:

var lastDay = new Date(firstDay.setDate(firstDay.getDate() + 6))

[请注意,在Javascript中,如果.getDay()方法是星期日,则返回0,如果是星期一[0],则返回1。同样,对于月份,一月为0,二月为1,依此类推。[1]

[0] https://www.w3schools.com/jsref/jsref_getday.asp

[1] https://www.w3schools.com/jsref/jsref_getmonth.asp

© www.soinside.com 2019 - 2024. All rights reserved.