php - 使用 Microsoft-graph php-sdk 创建事件
问题描述
我尝试使用 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 分钟启用提醒。
解决方案
您正在设置thedateTime
和timeZone
to UTC
。我不确定您期望发生什么,但这应该会生成一个新的event
using UTC
.
当您使用Z
后缀指定时间时,根据定义,您是在告诉它“这是协调世界时”。它相当于将日期/时间偏移设置为UTC -0
:
使用 UTC 的时区有时用字母表示
UTC±00:00
或用字母表示 - 对等效航海时区 (GMT) 的引用,自 1950 年左右以来Z
一直用 a 表示。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");
推荐阅读
- node.js - 如何从我的 Nodejs 程序进行此 API 调用?
- python - 根据 pandas 中的原始值计算运行总计
- javascript - 在 Vuejs 的 TextBox/Input 中更改或输入值
- python - Windows 中 python 的 termios 模块是什么?
- javascript - 如何在 HTML 输入文本占位符中显示特定的 JS 数组元素?
- laravel - 尝试使用laravel在excel中导出大数据时显示超时
- docker - gitlab ci pull_policy 用于仅限本地的 docker 图像
- python - 合并具有不均匀时间序列数据的数据帧
- android - 如何修复小米红米note 8 pro手机固件?
- flutter - 我卸载并重新安装了 VS Code Flutter 扩展,现在每次打开 VS Code 时,Flutter Daemon 都无法启动