2013-08-19 107 views
2

我试图创建一个谷歌日历事件,我得到这个错误:正确的日期格式设置为谷歌日历事件

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在线API检查器时,我使用的日期/时间格式和时区工作得很好。最后,我发现这个问题是因为我已经做到了这一点(使用类似的东西到你的符号):

$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); 

这给了我你提到的错误信息。也许谷歌解析器认为这只是一个日常事件,然后被更多的日期/时间数据混淆。 的问题就走了,当我检查第一,如果我有日期和时间数据,只是做了:

$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); 

:)

尽管Google自己的文档已老且无效,但您可能会喜欢使用它们的一些方法:https://developers.google.com/google-apps/calendar/v3/reference/events/insert

相关问题