我已经从php创建了ical文件,它运行正常。但是当我导入谷歌日历时,它会改变时间。
在做研究之后,这是时区问题。所以我尝试通过从时间中删除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";
答案 0 :(得分:4)
iCalendar中执行此操作的正确方法是使用他们称之为“浮动时间”的方式,它完全按照您的要求进行操作,而您确实只需要从时间中删除Z.
如果这不适用于谷歌日历,那么这意味着它们不支持浮动时间,不幸的答案就是“这是不可能的”。
答案 1 :(得分:2)
您可以使用一行设置日历的时区
X-WR-TIMEZONE:America/New_York