0

イベントを作成して Google Script 経由でアクセスすると、endTime がイベントを設定した実際の日付を超えていることに気付きました。これは、イベントを取得するためにカレンダーで何日も反復するときに非常に問題になる可能性があります。

例: Google カレンダーに移動し、今日の日付の標準のデフォルトで終日のイベントを設定します。次に、次のコードを実行します。

function foo() {
  var cal = CalendarApp.getDefaultCalendar();
  var date = new Date();
  var events = cal.getEventsForDay(date);
  Logger.log("Events for today: "+date);
  for (var i=0; i<events.length;i++) {
      Logger.log(events[i].getTitle());
      Logger.log(" "+events[i].getStartTime());
      Logger.log(" "+events[i].getEndTime());
  }
  date.setDate(date.getDate()+1);
  Logger.log("\nEvents for tomorrow: "+date);
  events = cal.getEventsForDay(date);
  for (var i=0; i<events.length;i++) {
      Logger.log(events[i].getTitle());
      Logger.log(" "+events[i].getStartTime());
      Logger.log(" "+events[i].getEndTime());
  }
}

出力例 (Google Script ログから):

Events for today: Wed Jul 04 2012 19:39:12 GMT+0200 (CEST)
Test
 Wed Jul 04 2012 02:00:00 GMT+0200 (CEST)
 Thu Jul 05 2012 02:00:00 GMT+0200 (CEST)

Events for tomorrow: Thu Jul 05 2012 19:39:12 GMT+0200 (CEST)
Test
 Wed Jul 04 2012 02:00:00 GMT+0200 (CEST)
 Thu Jul 05 2012 02:00:00 GMT+0200 (CEST)
OK
4

3 に答える 3

1

私は今、解決策を探してこの問題を3回再検討しました。私が見つけることができる唯一の合理的な解決策は、GMT+0で新しいカレンダーを作成することです。そうすれば、すべての「終日」イベントが1日以内に適切に調整されます。

于 2012-11-26T03:29:32.910 に答える
1

これはバグだと思います。購読する必要がある問題トラッカーで提起された多くの問題があります

  1. 234号
  2. 問題936
于 2012-07-06T11:27:14.100 に答える
0

同じバグが発生しています。私の終日イベントは、その前日の東部標準時午後 7 時から開始されます。私の一時的なクルージは、終日イベントが今日開始されるかどうかを確認することです。コードスニペット:

var allDayP = event.isAllDayEvent();
if (allDayP)
{
  titl = '<font color="red">' + event.getTitle() + '</font>';  
  if (Utilities.formatDate(event.getStartTime(), Session.getTimeZone(),"M/d") == Utilities.formatDate(now, Session.getTimeZone(),"M/d"))
  {
  startTime = "All Day Event The Next Day";
  endTime = Utilities.formatDate(event.getEndTime(), Session.getTimeZone(),"M/d")
  }
  else
  {
  startTime = "All Day Event Today";
  endTime = Utilities.formatDate(event.getEndTime(), Session.getTimeZone(),"M/d")
  }
}    
于 2013-02-22T07:49:33.003 に答える