mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-04-25 15:10:13 +00:00
Do all calculation of onset times in UTC (fixing some bugs).
This commit is contained in:
parent
8347143879
commit
d6ea96d2a0
@ -46,6 +46,7 @@ define( 'DEBUG_EXPAND', false );
|
||||
* @param object $vResource is a VCALENDAR with a VTIMEZONE containing components needing expansion
|
||||
* @param object $range_start A RepeatRuleDateTime which is the beginning of the range for events.
|
||||
* @param object $range_end A RepeatRuleDateTime which is the end of the range for events.
|
||||
* @param int $offset_from The offset from UTC in seconds at the onset time.
|
||||
*
|
||||
* @return array of onset datetimes with UTC from/to offsets
|
||||
*/
|
||||
@ -60,8 +61,6 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range
|
||||
$is_date = false;
|
||||
$has_repeats = false;
|
||||
$zone_tz = $vtz->GetPValue('TZID');
|
||||
$range_start->setTimeZone($zone_tz);
|
||||
$range_end->setTimeZone($zone_tz);
|
||||
|
||||
foreach( $components AS $k => $comp ) {
|
||||
if ( DEBUG_EXPAND ) {
|
||||
@ -73,8 +72,14 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range
|
||||
}
|
||||
$dtstart_prop = $comp->GetProperty('DTSTART');
|
||||
if ( !isset($dtstart_prop) ) continue;
|
||||
$dtstart_prop->SetParameterValue('TZID',$zone_tz);
|
||||
$dtstart = new RepeatRuleDateTime( $dtstart_prop );
|
||||
$dtstart->setTimeZone('UTC');
|
||||
$offset_from = $comp->GetPValue('TZOFFSETFROM');
|
||||
$offset_from = (($offset_from / 100) * 3600) + ((abs($offset_from) % 100) * 60 * ($offset_from < 0 ? -1 : 0));
|
||||
$offset_from *= -1;
|
||||
$offset_from = "$offset_from seconds";
|
||||
dbg_error_log( 'tz/update', "%s of offset\n", $offset_from);
|
||||
$dtstart->modify($offset_from);
|
||||
$is_date = $dtstart->isDate();
|
||||
$instances[$dtstart->UTC('Y-m-d\TH:i:s\Z')] = $comp;
|
||||
$rrule = $comp->GetProperty('RRULE');
|
||||
|
||||
@ -12,133 +12,133 @@ Content-Type: application/xml; charset="utf-8"
|
||||
<calscale>Gregorian</calscale>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2011-04-02T15:00:00Z</onset>
|
||||
<onset>2011-04-03T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2011-09-24T14:00:00Z</onset>
|
||||
<onset>2011-09-25T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2012-03-31T15:00:00Z</onset>
|
||||
<onset>2012-04-01T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2012-09-29T14:00:00Z</onset>
|
||||
<onset>2012-09-30T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2013-04-06T15:00:00Z</onset>
|
||||
<onset>2013-04-07T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2013-09-28T14:00:00Z</onset>
|
||||
<onset>2013-09-29T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2014-04-05T15:00:00Z</onset>
|
||||
<onset>2014-04-06T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2014-09-27T14:00:00Z</onset>
|
||||
<onset>2014-09-28T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2015-04-04T15:00:00Z</onset>
|
||||
<onset>2015-04-05T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2015-09-26T14:00:00Z</onset>
|
||||
<onset>2015-09-27T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2016-04-02T15:00:00Z</onset>
|
||||
<onset>2016-04-03T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2016-09-24T14:00:00Z</onset>
|
||||
<onset>2016-09-25T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2017-04-01T15:00:00Z</onset>
|
||||
<onset>2017-04-02T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2017-09-23T14:00:00Z</onset>
|
||||
<onset>2017-09-24T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2018-03-31T15:00:00Z</onset>
|
||||
<onset>2018-04-01T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2018-09-29T14:00:00Z</onset>
|
||||
<onset>2018-09-30T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2019-04-06T15:00:00Z</onset>
|
||||
<onset>2019-04-07T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2019-09-28T14:00:00Z</onset>
|
||||
<onset>2019-09-29T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2020-04-04T15:00:00Z</onset>
|
||||
<onset>2020-04-05T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2020-09-26T14:00:00Z</onset>
|
||||
<onset>2020-09-27T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZST</name>
|
||||
<onset>2021-04-03T15:00:00Z</onset>
|
||||
<onset>2021-04-04T14:00:00Z</onset>
|
||||
<utc-offset-from>+13:00</utc-offset-from>
|
||||
<utc-offset-to>+12:00</utc-offset-to>
|
||||
</observance>
|
||||
<observance>
|
||||
<name>NZDT</name>
|
||||
<onset>2021-09-25T14:00:00Z</onset>
|
||||
<onset>2021-09-26T14:00:00Z</onset>
|
||||
<utc-offset-from>+12:00</utc-offset-from>
|
||||
<utc-offset-to>+13:00</utc-offset-to>
|
||||
</observance>
|
||||
|
||||
@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2009-11-01T07:00:00Z</onset>
|
||||
<onset>2009-11-01T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2010-11-07T07:00:00Z</onset>
|
||||
<onset>2010-11-07T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -42,7 +42,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2011-11-06T07:00:00Z</onset>
|
||||
<onset>2011-11-06T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -54,7 +54,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2012-11-04T07:00:00Z</onset>
|
||||
<onset>2012-11-04T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -66,7 +66,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2013-11-03T07:00:00Z</onset>
|
||||
<onset>2013-11-03T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -78,7 +78,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2014-11-02T07:00:00Z</onset>
|
||||
<onset>2014-11-02T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -90,7 +90,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2015-11-01T07:00:00Z</onset>
|
||||
<onset>2015-11-01T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -102,7 +102,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2016-11-06T07:00:00Z</onset>
|
||||
<onset>2016-11-06T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -114,7 +114,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2017-11-05T07:00:00Z</onset>
|
||||
<onset>2017-11-05T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -126,7 +126,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2018-11-04T07:00:00Z</onset>
|
||||
<onset>2018-11-04T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -138,7 +138,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2019-11-03T07:00:00Z</onset>
|
||||
<onset>2019-11-03T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -150,7 +150,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2020-11-01T07:00:00Z</onset>
|
||||
<onset>2020-11-01T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -162,7 +162,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2021-11-07T07:00:00Z</onset>
|
||||
<onset>2021-11-07T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
|
||||
@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2011-11-06T07:00:00Z</onset>
|
||||
<onset>2011-11-06T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2012-11-04T07:00:00Z</onset>
|
||||
<onset>2012-11-04T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
|
||||
@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2014-11-02T07:00:00Z</onset>
|
||||
<onset>2014-11-02T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2015-11-01T07:00:00Z</onset>
|
||||
<onset>2015-11-01T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -42,7 +42,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2016-11-06T07:00:00Z</onset>
|
||||
<onset>2016-11-06T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -54,7 +54,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2017-11-05T07:00:00Z</onset>
|
||||
<onset>2017-11-05T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
@ -66,7 +66,7 @@ Content-Type: application/xml; charset="utf-8"
|
||||
</observance>
|
||||
<observance>
|
||||
<name>EST</name>
|
||||
<onset>2018-11-04T07:00:00Z</onset>
|
||||
<onset>2018-11-04T06:00:00Z</onset>
|
||||
<utc-offset-from>-04:00</utc-offset-from>
|
||||
<utc-offset-to>-05:00</utc-offset-to>
|
||||
</observance>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user