php - 使用 Microsoft-graph php-sdk 创建事件

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

我尝试使用 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 分钟启用提醒。

最佳答案

dateTimetimeZone 设置为UTC。我不确定您期望发生什么,但这应该使用UTC生成一个新的事件

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

The time zone using UTC is sometimes denoted UTC±00:00 or by the letter Z—a reference to the equivalent nautical time zone (GMT), which has been denoted by a Z since about 1950.

如果您想使用“太平洋标准时间”,那么您需要使用

$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");

关于php - 使用 Microsoft-graph php-sdk 创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54881322/

相关文章:

php - 在运行 php 脚本之前是否可以通过命令行参数要求 .php 文件?

php - 客户端加载过多图像,导致Apache服务器崩溃

azure-active-directory - MS Graph API 客户端 UpdateAsync() 方法出现错误

office365 - MS Graph API 的 Java 客户端

php - 使 mysql 连接静态化是个好主意吗?

php - 在单页中使用ajax和php上传多表单数据

microsoft-graph-api - 手动编辑 Excel 365 并使用图形 API 延迟读取

c# - 如何使用 Microsoft Graph API 发送邀请电子邮件

office365 - 订阅验证请求失败。响应必须与validationToken 查询参数完全匹配

azure-active-directory - 如何使用 Microsoft Graph API 按分配的计划筛选用户