我们的体育网站为我们的比赛、抽签等提供 ICS 日历。
为了检索 ICS 文件,我们使用 PHP 脚本读取本地 ics 文件,然后对 VEVENT 记录等进行一些可选过滤并返回 ICS 数据。
webcal://....
我已经在我的 iPhone 上订阅了这个 ICS webcal 。
我现在有一些像这样的全天事件(持续时间:P1D)的奇怪行为
BEGIN:VEVENT
DTSTART;VALUE=DATE:20120623
DURATION:P1D
TRANSP:TRANSPARENT
SUMMARY:Auslosung: VWM: Super Globe
DESCRIPTION:VWM: Super Globe
UID:20110124@thw-provinzial.de
CATEGORIES:THW-Termin
URL:http://www.thw-provinzial.de/thw/
COMMENT:TYPE=VWM
END:VEVENT
如果我通过webcal://www.thw-provinzial.de/thw/ics.php?config=all?
. (显示在 20120623 和 20120624 上)
如果我直接通过事件订阅 ics 文件,http://www.thw-provinzial.de/thw/thwdate2.ics
则仅在第 20120623 天正确显示。
如果我做一个
wget http://www.thw-provinzial.de/thw/thwdate2.ics
wget http://www.thw-provinzial.de/thw/ics.php?config=all
然后 diff 两个输出唯一的区别是X-WR-CALNAME
所有其他内容是相同的。
会不会是响应中的某些标头信息让 iPhone 感到困惑?
thwdate2.ics 的响应标头 - 这里的行为很好
HTTP/1.0 200 OK
Date: XXXXXX
Server: Apache
Last-Modified: Wed, 13 Jun 2012 20:05:04 GMT
ETag: "6c6f78d-c54d-4c260194d7c00"
Accept-Ranges: bytes
Content-Length: 50509
Vary: Accept-Encoding,User-Agent
Content-Type: text/calendar
Age: 787
ics.php 的响应标头 - 在这里我们遇到了跨越 2 天的问题
HTTP/1.0 200 OK
Date: Thu, XXXXXX
Server: Apache
Content-Disposition: inline; filename=thwdates.ics
Pragma: no-cache
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Last-Modified: Wed, 13 Jun 2012 20:05:04 GMT
Vary: Accept-Encoding,User-Agent
Content-Type: text/calendar; charset=utf-8
有任何想法吗?