API потоковой передачи YouTube Snippet.scheduledStartTime не работает при создании прямой трансляции - PullRequest
0 голосов
/ 18 января 2019

Я создаю YouTube прямую трансляцию с помощью API Explorer, все работает нормально, но Snippet.scheduledStartTime не работает нормально.

Мой часовой пояс +05: 00, а страна - Пакистан.

Я хочу запланировать событие на 2019-01-18 04:50 PM. Я установил Snippet.scheduledStartTime на 2019-01-18T11:50:00.000Z, но на странице события он показывает Starts January 18, 2019 at 3:50 AM (PST), когда я нажимаю изменить, он отображает неправильную страну и часовой пояс, например United States (GMT -08:00) Pacific

Я хочу использовать javascript или php клиентские библиотеки.

Пожалуйста, дайте мне знать, как я могу это исправить?

Вот мой php код

$broadcastSnippet = new Google_Service_YouTube_LiveBroadcastSnippet();
$broadcastSnippet->setTitle('New Test Broadcast');
$broadcastSnippet->setScheduledStartTime('2019-01-18T11:50:00.000Z');

1 Ответ

0 голосов
/ 21 января 2019

В соответствии с документами YouTube Live Streaming API формат для scheduledStartTime должен быть в формате ISO 8601:

datetime

Дата и время начала вещания. Значение указывается в формате ISO 8601 (ГГГГ-ММ-ДДЧч: мм: сс.сZ).

Я бы посоветовал вам проверить time zone designator, который вы установили.

Создать дату с часовым поясом

Я не PHP-разработчик, но самое умное, что нужно сделать, это создать дату в правильном часовом поясе, а затем поместить ее в правильный формат. Примерно через пять минут поиска я нашел это.

$tz = 'Europe/London';
$timestamp = time();
$dt = new DateTime("now", new DateTimeZone($tz)); //first argument "must" be a string
$dt->setTimestamp($timestamp); //adjust the object to correct timestamp
echo $dt->format('c');
...