2017-01-25 32 views
1

Googleの予定表をGoogleカレンダーに保存するために、GoogleのAPIに配列より下に送信していますが、間違った時刻に表示されています。 誰も私を助けることができますか?私のGoogleカレンダーで30:00から4を:イベントを保存するために午前9時30分の時間が、それは2017年1月25日、4として表示している -Googleカレンダーのタイムゾーンが正しくありません

Array 
(
[summary] => XXXXXXXXXXXXXXXXXXXX 
[location] => XXXXXXXXXXXXXXXXXXX 
[description] => XXXXXXXXXXXXXXXX 
[start] => Array 
    (
     [dateTime] => 2017-01-25T09:00:00+0000 
     [timeZone] => America/Toronto 
    ) 

[end] => Array 
    (
     [dateTime] => 2017-01-25T09:30:00+0000 
     [timeZone] => America/Toronto 
    ) 

[attendees] => Array 
    (
     [0] => Array 
      (
       [email] => XXXXXXXXXXXXXXXXXXXXXXXXXXXX 
      ) 

     [1] => Array 
      (
       [email] => XXXXXXXXXXXXXXXXXXXXXXXXXXXX 
      ) 

    ) 

[reminders] => Array 
    (
     [useDefault] => 
     [overrides] => Array 
      (
       [0] => Array 
        (
         [method] => email 
         [minutes] => 1440 
        ) 

       [1] => Array 
        (
         [method] => popup 
         [minutes] => 10 
        ) 

      ) 

    ) 

私は、午前9時00分を送っています。私はPHPのGoogleカレンダーのAPIを使用しています。 ありがとう

+0

'+0000'はタイムゾーンを指定しました。トロントのタイムゾーンである '-0500'に変更するとどうなりますか?または、それらをまとめて削除し、 'timeZone'ステートメントを使用します(これは、Summertime Savingsに対処するとより良いでしょう)。 – Robbie

+0

あなたのお返事ありがとう@Robbieはい、それは完全に静的な日付のために動作します。 私はこの ' $スタート=新しい日時(日付のようなもの( 'はYmd H:私は:s' を持っている、のstrtotime($日付)); 'スタート' =>配列( \t \t 'のdateTimeを' => $スタート - >フォーマット(日時:: ISO8601)、 'TIMEZONE' => 'アメリカ/トロント'、 )、 ' あなたが-'05を作る方法を助けてくださいできますか?A:00' は、この形式で おかげ –

+0

の場合私は送っている日から5時間を控除しても動作しますが、正しい方法ではないと思っています。日付から5時間を控除しても私の場所でしか動作しません。時間はどこですか? –

答えて

0

dateTimeフィールドは、イベントが発生した時刻を指定し、タイムゾーンはタイムゾーンでこれをユーザーに表示する装飾にすぎません(オフセットが省略されていない場合を除き、タイムゾーンのオフセットが取り込まれます)。考慮)。 dateTimeフィールドのオフセットは時間評価に関係します(あなたの場合、+0000は "UTCからのオフセットなし"を意味します)。 00:00 + 0000

  • はUTCで2017-01-25T14時間を指定します(またはより良い2017-01-25T14:00:00Z)を

  • は、次の3つのオプションがあり指定トロントでの時間オフセット 2017-01-25T09:00:00:00

から0500

  • は2017-01-25T09完全にオフセットを省略します

  • 0

    2017-01-25T09:00:00+0000なしで入力できると思います。時間帯を正しく指定するには、timeZoneプロパティを使用します。

    私の答えはthreadで確認できます。

    { 
    "end": { 
        "dateTime": "2017-01-25T09:30:00", 
        "timeZone": "America/Toronto" 
    }, 
    "start": { 
        "dateTime": "2017-01-25T09:00:00", 
        "timeZone": "America/Toronto" 
    } 
    } 
    

    私はAPIエクスプローラを使用してテストしており、正常に動作しています。