2013-08-19 2 views
2

Я пытаюсь создать событие для Google Calendar, и я получаю эту ошибку:Правильная даты форматирования для Google Calendar Event

Invalid value for: "T" found, can only parse bare date string: 2013-08-22T16:00:00 

Я также попытался добавить смещение часового пояса в мои строки, но я установил часовой пояс вручную в объекте EventDateTime, и в соответствии с документацией это необязательно.

Вот как я создаю мой строку времени:

data['start'] = $("#inputDateStart").val() + "T" + $("#inputTimeStart").val(); 

И как я установил эту строку в моем объекте

$start = new Google_EventDateTime(); 
$start->setTimeZone('America/Montreal'); 
$start->setDateTime($data['start']); 
$event->setStart($start); 

Что мне не хватает? Все дневные события отлично работают, когда я просто устанавливаю дату с помощью функции setDate.

ответ

4

Я не знаю весь ваш код, но при попытке установить дату в событии календаря Google я получал такое же сообщение об ошибке. Когда я использовал онлайн-авию Google, формат даты и времени и часовой пояс, который я использовал, работали просто отлично. В конце концов я обнаружил, что проблема была, потому что я сделал это (используя что-то похожее на вашу запись):

$start = new Google_EventDateTime(); 
$start->setDate('2013-10-10'); 
$event->setStart($start); 

А потом после обнаружения у меня был как дата и время доступной данные:

$start->setTimeZone('Europe/London'); 
$start->setDateTime('2013-10-10T19:15:00'); 
$event->setStart($start); 

Это дало мне сообщение об ошибке, которое вы упомянули. Возможно, аналитик Google подумал, что это только однодневное мероприятие, а затем было смущено дополнительными данными о дате/времени. Проблема ушла, когда я проверил первый, если у меня была как дата и время данные и только что сделал:

$start = new Google_EventDateTime(); 
$start->setTimeZone('Europe/London'); 
$start->setDateTime('2013-10-10T19:15:00'); 
$event->setStart($start); 
1

Вы можете просто добавить часовой пояс в конце времени:

$start = new Google_EventDateTime(); 
$start->setDateTime('2011-06-03T10:00:00-07:00'); 
$event->setStart($start); 

Это GMT-7

Так что в вашем случае это будет работать:

$start = new Google_EventDateTime(); 
$start->setDateTime($data['start']."-4:00"); 
$event->setStart($start); 

:)

Несмотря на то, что собственная документация на googles устарела и недействительна, вы можете использовать некоторые из их методов: https://developers.google.com/google-apps/calendar/v3/reference/events/insert

Смежные вопросы