我尝试使用php将数据库中的日历导出到文件。
除了一件事之外它工作正常:所有事件都设置为从01:00而不是00:00开始。它可能与冬季/夏季有关。我设置了时区(将开始时间从02:00更改为01:00
PHP-代码
$ical = "BEGIN:VCALENDAR\r\nMETHOD:PUBLISH VERSION:2.0\r\n";
$ical .= "PRODID:-//SYKL.no//Norsk Rittkalender//NO\r\n";
$ical .= "BEGIN:VTIMEZONE\r\nTZID:Europe/Oslo\r\nEND:VTIMEZONE\r\n";
foreach($kalender as $k) {
if($k['typeritt']!="3") {
$ical .= "BEGIN:VEVENT\r\nSUMMARY: " . strtoupper($k['navn']) . "\r\n";
$ical .= "UID: " . $k['rittresultatid'] . "\r\n";
$ical .= "DTSTART;TZID=Europe/Oslo:" . date('Ymd', strtotime($k['startdato'])) . "T000000\r\n";
$ical .= "DTEND;TZID=Europe/Oslo: " . date('Ymd', strtotime($k['sluttdato'])) . "T000000" ."\r\n";
$ical .= "END:VEVENT\r\n"; }
}
$ical .= "END:VCALENDAR";
$filename="ical.ics";
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $filename);
echo utf8_encode($ical);
提前致谢!
$ kalender数组使用一些挪威语
挪威语傻瓜:
navn = name
rittresultatid = ID
startdato = start date
sluttdato = end date
答案 0 :(得分:0)
我很确定您会看到此行为,因为您的after_rollback
未指定任何时区偏移(有效VTIMEZONE
对象必须至少包含一个{{1} }或VTIMEZONE
组件)。尝试添加有效STANDARD
(请参阅RFC 5545)或以UTC格式指定日期时间。
可选择制作您的活动"全天"省略任何时间信息如下:
DAYLIGHT