даты начала и окончания оба выключены на 1 день в календаре Google - PullRequest
0 голосов
/ 05 июня 2019

У меня есть некоторый php-код, динамически генерирующий файл .ics для загрузки. Я передаю начальное значение даты 08/01/2019 , и когда оно успешно импортируется в календарь ical / google, оно отключается на один день, несмотря на правильность метки времени эпохи. Я не уверен, что мне здесь не хватает.

Я попытался переформатировать дату в другую строку даты, чем преобразовать ее в формат, необходимый для формата ical, что привело к 1 января 1969 года. Я использую функцию datePi18n () в WordPress для форматирования даты в ожидаемом значении.

$dateVal; // contains 08/01/2019    
$dtstart = date_i18n("Ymd\THis\Z", strtotime( $dateVal) );

// output: 20190801T000000Z

Когда событие заносится в календарь, оно показывает мою дату 31 июля 2019 года в 18:00, НЕ ожидаемое значение 1 августа 2019 года

Есть идеи, как я могу это отладить?

1 Ответ

1 голос
/ 05 июня 2019

Что Я думаю, что происходит так:

Ваше событие должно быть в 8/01/2019 в вашем часовом поясе, который, исходя из видимого смещения, кажется UTC +6.

\Z в строке формата указывает на то, что событие происходит в 01.08.2009 в UTC, поэтому, когда вы видите его в своем календаре, оно настраивается на ваш часовой пояс, поэтому оно получаетВычитается 8 часов.

Попробуйте отключить \Z, я думаю, что он должен просто использовать ваш местный часовой пояс.

Или преобразовать время в UTC.

$date = new DateTime($dateVal);
$date->setTimezone(new DateTimeZone('UTC'));
$dtstart = $date->format('Ymd\THis\Z');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...