Javascript 如何在google calendar api的事件对象中设置开始和结束时间

Javascript 如何在google calendar api的事件对象中设置开始和结束时间,javascript,google-api,google-calendar-api,Javascript,Google Api,Google Calendar Api,我正在使用谷歌日历api在日历上创建事件。我在这里关注谷歌的api文档 我的支持服务当前正在以这种格式向我返回事件开始日期和时间2020-06-10T10:00:00.000以及字符串形式的持续时间'01:30:00'。它还向我返回了时区美国/洛杉矶。如何使用这些值设置开始日期时间和结束日期时间。需要使用不同的Javascript日期对象方法 样本: var timeString = "2020-06-10T10:00:00.000"; var timeZone = "America/L

我正在使用谷歌日历api在日历上创建事件。我在这里关注谷歌的api文档

我的支持服务当前正在以这种格式向我返回事件开始日期和时间
2020-06-10T10:00:00.000
以及字符串形式的持续时间
'01:30:00'
。它还向我返回了时区
美国/洛杉矶
。如何使用这些值设置开始日期时间和结束日期时间。

需要使用不同的Javascript日期对象方法 样本:

  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'}
    ],
  }
需要使用不同的Javascript日期对象方法 样本:

  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'}
    ],
  }

非常感谢你美丽的答案,我从中学到了很多。非常感谢你美丽的答案,我从中学到了很多。