1

php から ical ファイルを作成しましたが、正常に動作します。しかし、Googleカレンダーにインポートすると時間が変わります。

調査を行った後、それはタイムゾーンの問題です。そのため、時刻から Z (UTC) を削除して修正しようとしましたが、インポート後も時刻が正しくありません。

次のイベント時間を設定すると、カレンダーに設定されているタイムゾーンに関係なく、すべてのインポートで正常に機能するはずです。

        $ical ="BEGIN:VCALENDAR\n".
                "VERSION:2.0\n".
                "PRODID:-//hacksw/handcal//NONSGML v1.0//EN\n";

        $start  = strtotime('2013-7-26 2:36 am');
        $end    = (60*1); // end in one minute

         $ical .="BEGIN:VEVENT\n".
                        "UID:" . md5(uniqid(mt_rand(), true)) . "@".site::$domain_only."\n".
                        "DTSTAMP:" . date('Ymd\THis'). "\n".
                        "DTSTART:" . date('Ymd\THis', $start)."\n".
                        "DTEND:" . date('Ymd\THis', $start+$end)."\n".
                        "SUMMARY: My Event\n".
                        "END:VEVENT\nEND:VCALENDAR";
4

2 に答える 2

4

iCalendar でこれを行う正しい方法は、彼らが「浮動時間」と呼ぶものを使用することです。これはまさにあなたが望むことを行います。実際、時間から Z を削除するだけで済みます。

これが Google カレンダーで機能しない場合は、フローティング タイムがサポートされていないことを意味し、残念ながら「これは不可能です」となります。

于 2013-07-28T23:55:20.663 に答える