aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Little <clittle@users.sourceforge.net>2003-09-21 20:02:54 +0000
committerChad Little <clittle@users.sourceforge.net>2003-09-21 20:02:54 +0000
commita2c7458c98dd67894a68bc636a2808263e9feb63 (patch)
tree2a0e403d844b185fb8ef071c0e1f9c7a73906eb5
parent25a8e1aa72d2cd919307492d220d99336bae7d11 (diff)
downloadphpicalendar-a2c7458c98dd67894a68bc636a2808263e9feb63.tar.gz
phpicalendar-a2c7458c98dd67894a68bc636a2808263e9feb63.tar.bz2
phpicalendar-a2c7458c98dd67894a68bc636a2808263e9feb63.zip
Added a fix for when peeps write calendar start times before 1970 (when
unix started).
-rw-r--r--calendars/US Holidays.ics314
-rw-r--r--functions/ical_parser.php12
2 files changed, 48 insertions, 278 deletions
diff --git a/calendars/US Holidays.ics b/calendars/US Holidays.ics
index c71decd..544f957 100644
--- a/calendars/US Holidays.ics
+++ b/calendars/US Holidays.ics
@@ -1,277 +1,37 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Rockin' Software//WinDates 5.0//EN
-METHOD:PUBLISH
-
-BEGIN:VEVENT
-SUMMARY:Grandparent's Day
-DESCRIPTION:First Sunday after Labor Day
-DTSTAMP:20030701T000000Z
-UID:holiday0017@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:19780910
-RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=SU;BYMONTHDAY=13,7,8,9,10,11,12;BYMONTH=9
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Election Day
-DESCRIPTION:Tuesday after 1st Monday in November
-DTSTAMP:20030701T000000Z
-UID:holiday0013@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531106
-RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8;BYMONTH=11
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:April Fools Day
-DESCRIPTION:April 1
-DTSTAMP:20030701T000000Z
-UID:holiday0000@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530401
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Armed Forces Day
-DESCRIPTION:3rd Saturday of May
-DTSTAMP:20030701T000000Z
-UID:holiday0001@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530519
-RRULE:FREQ=MONTHLY;BYMONTH=5;BYDAY=3SA
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Columbus Day
-DESCRIPTION:2nd Monday of October
-DTSTAMP:20030701T000000Z
-UID:holiday0008@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531008
-RRULE:FREQ=MONTHLY;BYMONTH=10;BYDAY=2MO
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Daylight Savings +1 hr
-DESCRIPTION:1st Sunday of April
-DTSTAMP:20030701T000000Z
-UID:holiday0009@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530401
-RRULE:FREQ=MONTHLY;BYMONTH=4;BYDAY=1SU
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Daylight Savings -1 hr
-DESCRIPTION:Last Sunday of October
-DTSTAMP:20030701T000000Z
-UID:holiday0010@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531028
-RRULE:FREQ=MONTHLY;BYMONTH=10;BYDAY=-1SU
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Father's Day
-DESCRIPTION:3rd Sunday of June
-DTSTAMP:20030701T000000Z
-UID:holiday0014@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530617
-RRULE:FREQ=MONTHLY;BYMONTH=6;BYDAY=3SU
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Flag Day
-DESCRIPTION:June 14
-DTSTAMP:20030701T000000Z
-UID:holiday0015@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530614
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Groundhog Day
-DESCRIPTION:February 2
-DTSTAMP:20030701T000000Z
-UID:holiday0018@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530202
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Halloween
-DESCRIPTION:October 31
-DTSTAMP:20030701T000000Z
-UID:holiday0019@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531031
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Independence Day
-DESCRIPTION:July 4
-DTSTAMP:20030701T000000Z
-UID:holiday0020@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530704
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Labor Day
-DESCRIPTION:1st Monday of September
-DTSTAMP:20030701T000000Z
-UID:holiday0021@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530903
-RRULE:FREQ=MONTHLY;BYMONTH=9;BYDAY=1MO
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Lincoln's Birthday
-DESCRIPTION:February 12
-DTSTAMP:20030701T000000Z
-UID:holiday0022@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530212
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Mardi Gras (Fat Tuesday)
-DESCRIPTION:47 days before Easter
-DTSTAMP:20030701T000000Z
-UID:holiday0023@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530308
-X-WD-RECUR-EASTER:TRUE
-X-WD-RECUR-OFFSET:-47
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Martin Luther King Jr.
-DESCRIPTION:3rd Monday of January
-DTSTAMP:20030701T000000Z
-UID:holiday0024@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530115
-RRULE:FREQ=MONTHLY;BYMONTH=1;BYDAY=3MO
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Memorial Day
-DESCRIPTION:Last Monday of May
-DTSTAMP:20030701T000000Z
-UID:holiday0025@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530528
-RRULE:FREQ=MONTHLY;BYMONTH=5;BYDAY=-1MO
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Mother's Day
-DESCRIPTION:2nd Sunday of May
-DTSTAMP:20030701T000000Z
-UID:holiday0026@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530513
-RRULE:FREQ=MONTHLY;BYMONTH=5;BYDAY=2SU
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:New Year's Day
-DESCRIPTION:January 1
-DTSTAMP:20030701T000000Z
-UID:holiday0027@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530101
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:New Year's Eve
-DESCRIPTION:December 31
-DTSTAMP:20030701T000000Z
-UID:holiday0028@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531231
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:President's Day
-DESCRIPTION:3rd Monday of February
-DTSTAMP:20030701T000000Z
-UID:holiday0030@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530219
-RRULE:FREQ=MONTHLY;BYMONTH=2;BYDAY=3MO
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Secretaries Day
-DESCRIPTION:Wednesday of last full week in April
-DTSTAMP:20030701T000000Z
-UID:holiday0032@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:19520423
-RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=WE;BYMONTHDAY=25,26,27,21,22,23,24;BYMONTH=4
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:St. Patrick's Day
-DESCRIPTION:March 17
-DTSTAMP:20030701T000000Z
-UID:holiday0033@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530317
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Thanksgiving
-DESCRIPTION:4th Thursday of November
-DTSTAMP:20030701T000000Z
-UID:holiday0034@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531122
-RRULE:FREQ=MONTHLY;BYMONTH=11;BYDAY=4TH
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Valentine's Day
-DESCRIPTION:February 14
-DTSTAMP:20030701T000000Z
-UID:holiday0035@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530214
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Veteran's Day
-DESCRIPTION:November 11
-DTSTAMP:20030701T000000Z
-UID:holiday0037@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17531111
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-BEGIN:VEVENT
-SUMMARY:Washington's Birthday
-DESCRIPTION:February 22
-DTSTAMP:20030701T000000Z
-UID:holiday0038@icaldates.com
-CATEGORIES:Holiday - US
-DTSTART;VALUE=DATE:17530222
-RRULE:FREQ=YEARLY
-END:VEVENT
-
-END:VCALENDAR
+BEGIN:VCALENDAR
+
+
+VERSION:2.0
+
+
+PRODID:-//Rockin' Software//WinDates 5.0//EN
+
+
+METHOD:PUBLISH
+
+
+
+
+BEGIN:VEVENT
+
+SUMMARY:Washington's Birthday
+
+DESCRIPTION:February 22
+
+DTSTAMP:20030701T000000Z
+
+UID:holiday0038@icaldates.com
+
+CATEGORIES:Holiday - US
+
+DTSTART;VALUE=DATE:17530222
+
+RRULE:FREQ=YEARLY
+
+END:VEVENT
+
+
+
+END:VCALENDAR
+
+
diff --git a/functions/ical_parser.php b/functions/ical_parser.php
index 40e377d..8895b88 100644
--- a/functions/ical_parser.php
+++ b/functions/ical_parser.php
@@ -387,6 +387,7 @@ foreach ($cal_filelist as $filename) {
break;
case 'END':
+ if (!isset($number)) $number = 1;
// if $until isn't set yet, we set it to the end of our range we're looking at
// The FREQ switch array will always kick our early, so lets try this workaround.
if (isset($until)) $until = strtotime('+'.$interval.' '.$freq_type, $until);;
@@ -494,7 +495,11 @@ foreach ($cal_filelist as $filename) {
}
break;
case 'YEARLY':
- if (!isset($bymonth)) $bymonth[] = date('m', $start_date_time);
+
+ if (!isset($bymonth)) {
+ $m = date('m', $start_date_time);
+ $bymonth = array("$m");
+ }
foreach($bymonth as $month) {
$year = date('Y', $next_range_time);
if ((isset($byday)) && (is_array($byday))) {
@@ -764,6 +769,11 @@ foreach ($cal_filelist as $filename) {
$data = ereg_replace('Z', '', $data);
$field = ereg_replace(';VALUE=DATE-TIME', '', $field);
if (preg_match("/^DTSTART;VALUE=DATE/i", $field)) {
+ ereg ('([0-9]{4})([0-9]{2})([0-9]{2})', $data, $dtstart_check);
+ if ($dtstart_check[1] < 1969) {
+ $dtstart_check[1] = '1990';
+ $data = $dtstart_check[1].$dtstart_check[2].$dtstart_check[3];
+ }
$allday_start = $data;
$start_date = $allday_start;
$start_unixtime = strtotime($data);

© 2014-2024 Faster IT GmbH | imprint | privacy policy