API потоковой передачи YouTube Snippet.scheduledStartTime не работает при создании прямой трансляции

Я создаю 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 ответ

Решение

Согласно Документам 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');