我尝试使用 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 分钟启用提醒。
最佳答案
您将dateTime
和timeZone
设置为UTC
。我不确定您期望发生什么,但这应该使用UTC
生成一个新的事件
。
当您使用 Z
后缀指定时间时,by definition ,告诉它“这是协调世界时”。它相当于将日期/时间偏移设置为 UTC -0
:
The time zone using UTC is sometimes denoted
UTC±00:00
or by the letterZ
—a reference to the equivalent nautical time zone (GMT), which has been denoted by aZ
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/