2

PHP と次のコードを使用してカレンダーの会議出席依頼を送信しています。

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150501T080000Z
DTEND:20150502T090000Z
DTSTAMP:20150411T075116Z
ORGANIZER;CN=Jass:mailto:organizer@google.com
UID:12345678
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Sample:mailto:sample@test.com
DESCRIPTION:Complete event on http://www.sample.com/get_event.php?id=12345678
LOCATION: India
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:TESTING timezones
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

問題

私は午前 8 時から午前 9 時までリクエストを送信していますが、招待状では午後 1 時 30 分から午後 2 時 30 分まで受け取ります。

この場合、どのようにタイムゾーンを管理するのでしょうか?
DTSTAMP とは何ですか? DTSTAMP を介してこの問題を管理できますか?

4

1 に答える 1

1

DTSTART と DTEND の "Z" サフィックスは、それらの日時が UTC で提供されていることを示します。クライアントのタイムゾーンがインド (UTC + 5 時 30 分) に設定されていると仮定すると、開始時刻が 1:30PM として正しく表示されます。

そのため、招待状を送信するときにそれを考慮するか、招待状に VTIMEZONE コンポーネントを含めて、DTSTART/DTEND でその VTIMEZONE を参照する必要があります。

...
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Asia/Kolkata
BEGIN:STANDARD
TZOFFSETFROM:+0530
TZOFFSETTO:+0530
DTSTART:19451015T000000
TZNAME:IST
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Asia/Kolkata:20150501T080000
DTEND;TZID=Asia/Kolkata:20150501T090000

...

DTSTAMP は主に、既存のイベントの更新がクライアントが既に受信したものよりも遅いかどうかを確認するために使用されます。https://www.rfc-editor.org/rfc/rfc5545#section-3.8.7.2を参照してください。

于 2015-04-13T07:43:48.563 に答える