我有一个用于测试iPad的样本数据的php页面,但当我点击Safari中的打开"日历" 按钮时,它触发日历应用程序,但它打开时没有向我显示有关事件的任何信息。这是我的代码:
<?php
$ical = "
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:" . gmdate('Ymd').'T'. "160000Z
DTEND:" . gmdate('Ymd').'T'. "170000Z
SUMMARY:Paul's Birthday
END:VEVENT
BEGIN:VEVENT
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:" . gmdate('Ym').'T'. "230000Z
DTEND:" . gmdate('Ymd').'T'. "240000Z
SUMMARY:John's Birthday
END:VEVENT
END:VCALENDAR";
//echo out
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');
echo $ical;
?>
我做错了什么?
编辑:
这是一个从php生成的示例文件:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTAMP:20121017T204856Z
DTSTART:20121017T160000Z
DTEND:20121017T170000Z
SUMMARY:Paul's Birthday
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20121017T204856Z
DTSTART:201210T230000Z
DTEND:20121017T240000Z
SUMMARY:John's Birthday
END:VEVENT
END:VCALENDAR
答案 0 :(得分:0)
你有一个错字。在您的第二个VEVENT上,DTSTART上缺少了一天。
替换
gmdate(&#39; YM&#39)
与
gmdate(&#39; YMD&#39)
答案 1 :(得分:0)
我自己修好了。显然,iCal不喜欢在 BEGIN:VCALENDAR 之前有换行符。我希望iCal去除那种东西,但显然他们没有,所以如果有其他人有iCal的问题,一定要检查字符串是不是以换行开头!