Создать событие с Microsoft-графиком 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 минут до события.

Кто-нибудь может помочь?

0 ответов

Вы устанавливаете оба dateTime и timeZone в UTC, Я не уверен, что вы ожидаете, но это должно генерировать новый event с помощью UTC,

Когда вы указываете время, используя Z По суффиксу вы, по определению, говорите: "Это Всемирное координированное время". Это эквивалентно установке смещения даты / времени в UTC -0:

Часовой пояс с использованием UTC иногда обозначается UTC±00:00 или по письму Z - ссылка на эквивалентный морской часовой пояс (GMT), который обозначен Z примерно с 1950 года.

Если вы хотите использовать "Pacific Standard Time", то вы бы хотели использовать

$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");
Другие вопросы по тегам