3

Google カレンダーのイベントを作成しようとすると、次のエラーが発生します:

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

2 に答える 2

5

コード全体はわかりませんが、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);

これにより、あなたが言及したエラーメッセージが表示されました。おそらく、Google パーサーはそれが 1 日のみのイベントであると認識し、追加の日付/時刻データによって混乱したのでしょう。日付と時刻の両方のデータがあるかどうかを最初に確認して、次のことを行ったところ、問題はなくなりました。

$start = new Google_EventDateTime();
$start->setTimeZone('Europe/London');
$start->setDateTime('2013-10-10T19:15:00');
$event->setStart($start);
于 2013-10-11T06:22:17.640 に答える