繁体   English   中英

如何在事件 object 中为谷歌日历 api 设置开始和结束时间

[英]How to set start and end time in event object for google calendar api

我正在使用谷歌日历 api 在日历上创建事件。 我在这里关注谷歌的 api 文档https://developers.google.com/calendar/create-events#javascript

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
};

我支持的服务目前正在以2020-06-10T10:00:00.000格式向我返回事件开始日期和时间,以及字符串'01:30:00'中的持续时间。 它还让我返回时区America/Los_Angeles 如何使用这些值设置我的开始日期时间和结束日期时间。

需要玩一些不同的 Javascript 日期 object 方法

样本:

  var timeString = "2020-06-10T10:00:00.000";
  var timeZone = "America/Los_Angeles";
  var duration = '01:30:00';

  var startDate = new Date(timeString);
  var msDuration = (Number(duration.split(':')[0]) * 60 * 60 + Number(duration.split(':')[1]) * 60  + Number(duration.split(':')[2])) * 1000;
  var endDate = new Date(startDate.getTime() + msDuration);
  var isoStartDate = new Date(startDate.getTime()-new Date().getTimezoneOffset()*60*1000).toISOString().split(".")[0];
  var isoEndDate = new Date(endDate.getTime()-(new Date().getTimezoneOffset())*60*1000).toISOString().split(".")[0];

  var event = {
    'summary': 'Google I/O 2015',
    'location': '800 Howard St., San Francisco, CA 94103',
    'description': 'A chance to hear more about Google\'s developer products.',
    'start': {
      'dateTime': isoStartDate,
      'timeZone': timeZone
    },
    'end': {
      'dateTime': isoEndDate,
      'timeZone': timeZone
    },
    'attendees': [
      {'email': 'lpage@example.com'},
      {'email': 'sbrin@example.com'}
    ],
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM