我给用户提供了一个链接,他们可以使用该链接将我的系统中的预约放入他们的日历软件(如Outlook,…),使用iCalendar URL。
我使用以下代码生成文件中的日期:
echo "DTSTART;TZID=" . date_default_timezone_get() . ":" . strftime('%Y%m%d', strtotime($app->app_start)) . 'T' . strftime('%H%M%S', strtotime($app->app_start)) . '' . $eol;
echo "DTEND;TZID=" . date_default_timezone_get() . ":" . strftime('%Y%m%d', strtotime($app->app_end)) . 'T' . strftime('%H%M%S', strtotime($app->app_end)) . '' . $eol;
这一直以来都是正常的。但现在我们处于夏令时,所有处于夏令时的约会在我的 Outlook 中显示晚了 1 小时。而夏令时前的约会则正常。
例如,在我的 ICS 文件中:
DTSTART;TZID=Europe/Brussels:20150318T083000 DTEND;TZID=Europe/Brussels:20150318T090000
这在我的日历中正确地显示为从 08:30 到 09:00。
DTSTART;TZID=Europe/Brussels:20150407T083000 DTEND;TZID=Europe/Brussels:20150407T090000
这就是我的问题了,它在我的日历中显示不正确:从 09:30 到 10:30。
我该怎么解决?
BEGIN:VTIMEZONE TZID:Europe/Brussels X-LIC-LOCATION:Europe/Brussels BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:STANDARD END:VTIMEZONE
- user1026090VTIMEZONE
。我不认为我在Gmail中见过这样的问题,所以一定有更简单的方法来解决它。 - pieroxy