【问题标题】:Create event with Microsoft-graph php-sdk使用 Microsoft-graph php-sdk 创建事件
【发布时间】:2019-02-26 08:35:45
【问题描述】:

我尝试使用 php-sdk 创建事件,但设置开始和结束时区不起作用。

$e = new Model\Event();
  $e->setSubject($subject);

$start = new Model\DateTimeTimeZone();
  $start->setDateTime($startDateTime);
  $start->setTimeZone($startTimeZone);

$e->setStart($start);
$e->setEnd($start);

$body = new Model\ItemBody();
  $body->setContentType(Model\BodyType::HTML);
  $body->setContent($content);

$e->setBody($body);

但结果事件每次都是UTC。

我试过了:

$e->setOriginalStartTimeZone($startTimeZone);
$e->setOriginalEndTimeZone($startTimeZone);

并添加标题:

Prefer: outlook.timezone="Pacific Standard Time"

但结果是一样的。

当我添加时

$e->setReminderMinutesBeforeStart(8);
$e->setIsReminderOn(true);

其余部分被禁用。如果我不包含此代码,则会在活动开始前 15 分钟启用提醒。

【问题讨论】:

标签: php microsoft-graph-api microsoft-graph-sdks microsoft-graph-calendar


【解决方案1】:

您正在设置 dateTimetimeZoneUTC。我不确定您期望发生什么,但这应该使用UTC 生成一个新的event

当您使用Z 后缀指定时间时,您就是by definition,告诉它“这是协调世界时”。相当于将日期/时间偏移设置为UTC -0

使用 UTC 的时区有时用 UTC±00:00 或字母 Z 表示——这是对等效航海时区 (GMT) 的引用,自 1950 年左右以来一直用 Z 表示。

如果你想使用“太平洋标准时间”,那么你会想使用

$start = new Model\DateTimeTimeZone();
  $start->setDateTime("2019-03-11T21:01:57");
  $start->setTimeZone("Pacific Standard Time");

虽然您可以简单地使用 -08:00 作为 UTC 偏移量(我对 PHP SDK 的经验不足,不知道这是否会在我的脑海中起作用,但我想它会):

$start = new Model\DateTimeTimeZone();
  $start->setDateTime("2019-03-11T21:01:57-08:00");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多