Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php icalendar或vcalendar会议邀请中的时区_Php_Icalendar_Vcalendar - Fatal编程技术网

Php icalendar或vcalendar会议邀请中的时区

Php icalendar或vcalendar会议邀请中的时区,php,icalendar,vcalendar,Php,Icalendar,Vcalendar,我通过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=NE

我通过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管理此问题吗?

DTSTART和DTEND中的“Z”后缀表示这些日期时间是在UTC中提供的。假设您的客户机将时区设置为印度(UTC+5h30),它会正确地将开始时间显示为下午1:30

因此,您在发送邀请时需要考虑到这一点,或者在邀请中包含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主要用于查看对现有事件的更新是否晚于客户端已经接收到的更新。看