2016-08-03 14 views
0

PHPを使用してGoogleカレンダーでイベントを作成しています。 イベントは正常に作成されましたが、カレンダーに間違った時刻が表示されます。無効な日付表示がGoogleカレンダーに表示される

$start = '2016-08-04T13:30:00.000+02:00'; 
$end = '2016-08-04T18:00:00.000+02:00' 
$timezone= 'Europe/Zurich'; 

$service = new Google_Service_Calendar($client); 
     $event = new Google_Service_Calendar_Event(array(
      'summary' => $eventname, 
      'location' => $address, 
      'description' => $description, 
      'start' => array(
       'dateTime' => $start, 
       'timeZone' => $timezone, 
      ), 
      'end' => array(
       'dateTime' => $end, 
       'timeZone' => $timezone, 
      ), 
      'attendees' => array(
       array('email' => $contactemail), 
      ), 
      'reminders' => array(
       'useDefault' => FALSE, 
       'overrides' => array(
       array('method' => 'email', 'minutes' => 24 * 60), 
       array('method' => 'popup', 'minutes' => 10), 
      ), 
      ), 
     )); 

     $event = $service->events->insert($calid, $event); 

このコードを使用すると、イベントが正常に作成されます。 カレンダーのイベントをチェックするときに間違った時間が表示されます。

このURLを参照してください。 http://awesomescreenshot.com/00b62fl6ed

編集イベントをクリックすると、 開始日と終了日時が正しいことを確認します。

このURLを参照してください。 http://awesomescreenshot.com/0df62fkn00

しかし、問題はカレンダーで正しく表示されていないことです。 私のコードをチェックして、何が間違っているか教えてください。

+0

コードをチェックして何が間違っているかを確認します。 SOは**無料ではありません。デバッグサービス** – RiggsFolly

+1

このコードは、このコードを使用していないことは明らかです。だからあなたが使用しているコードのエラーに使用していないコードをチェックする私たちのポイント – RiggsFolly

+0

メインカレンダーの表示で単にタイムゾーンの問題を見ます。あなたは同じタイムゾーンを使用していますか? (チューリッヒ+02) –

答えて

0

コードに入力ミスがあります。 2行目に最後にセミコロンがありません。

$end = '2016-08-04T18:00:00.000+02:00'; 

ただし、このエラーはGoogleカレンダーの設定にあると思います。タイムゾーンのハーモニーにある場合、タイムゾーンでGoogleカレンダーの設定を見てみてください。

+0

: - まだ同じ問題 –

+0

その場合、遠隔からアドバイスすることは困難です。試してみてください。 –

0

作業溶液はhttp://php.net/manual/en/function.date.php

<?php 

/** 
* Get date in RFC3339 
* For example used in XML/Atom 
* 
* @param integer $timestamp 
* @return string date in RFC3339 
* @author Boris Korobkov 
*/ 
function date3339($timestamp=0) { 

    if (!$timestamp) { 
     $timestamp = time(); 
    } 
    $date = date('Y-m-d\TH:i:s', $timestamp); 

    $matches = array(); 
    if (preg_match('/^([\-+])(\d{2})(\d{2})$/', date('O', $timestamp), $matches)) { 
     $date .= $matches[1].$matches[2].':'.$matches[3]; 
    } else { 
     $date .= 'Z'; 
    } 
    return $date; 
} 

?> 

背景から撮影: "出版され、更新された要素は、RFC 3339タイムスタンプ 形式を使用する" http://www.ibm.com/developerworks/opensource/library/os-php-xpath/から私 は見

そして私を考え出しgoogle "rfc3339 PHP" がこの形式を実装している機能を見つけるには

+0

: - まだ同じ問題 –

関連する問題