mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-06-20 06:50:20 +00:00
The RepeatRuleDateTime constructor extracts the date's time zone then passes it to the parent class DateTime. Because PHP's DateTime has full support for time zones, it compensates for them when parsing a string. Normally this isn't a problem, because the opposite occurs when a DateTime is converted back into a string; the two adjustments cancel each other. Davical often converts a time to UTC by negating the time zone offset and adding it to the underlying DateTime (keeping the time zone intact). A problem occurs when the result is on the other side of a daylight- saving-time transition. In that case the adjustments do not cancel and an incorrect time string is returned. This bug is tricky because the problem doesn't manifest during the DST transition iself, but hours earlier or later depending on the original time zone. For example, 2022-03-12T18:30:00-08:00 (America/Los_Angeles) is 2022-03-13T02:30:00Z. Since 2022-03-13 is a 23-hour day in the Los Angeles time zone (the 2AM-3AM hour is skipped) this becomes 2022-03-13T03:30:00-07:00 after adding the negated offset. FloatOrUTC() would strip the new offset and simply return "20220313T033000".
DAViCal CalDAV Server by Andrew McMillan. For documentation you are best advised to visit the DAViCal website at https://www.davical.org/ or search our general mailing list at https://lists.sourceforge.net/mailman/listinfo/davical-general There's lots of useful information at https://wiki.davical.org/ as well, and if you want access to update that contact us on IRC (#davical on OFTC, be patient and stick around for a while) or send an e-mail to <wiki-access@davical.org>. Good luck! Andrew McMillan ----------------------------------------------- Copyright: 2006-2011 Andrew McMillan <andrew@mcmillan.net.nz> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Description
DAViCal is a server for calendar sharing. It is an implementation of the CalDAV protocol which is designed for storing calendaring resources (in iCalendar format) on a remote shared server.
Languages
PHP
71%
PLpgSQL
13.2%
Perl
11.7%
Shell
2%
Prolog
0.6%
Other
1.5%