Passed
Push — 45-mixed-bag-of-php-modernizat... ( 2062ef )
by
unknown
09:06
created
mapi/class.freebusypublish.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -218,7 +218,7 @@
 block discarded – undo
218 218
 					],
219 219
 				], // EXISTS OR
220 220
 			],
221
-		];        // global OR
221
+		]; // global OR
222 222
 
223 223
 		$contents = mapi_folder_getcontentstable($this->calendar);
224 224
 		mapi_table_restrict($contents, $restrict);
Please login to merge, or discard this patch.
lib/syncobjects/syncprovisioning.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -236,7 +236,7 @@
 block discarded – undo
236 236
 					self::STREAMER_VAR => "unapprovedinromapplist",
237 237
 					self::STREAMER_PROP => self::STREAMER_TYPE_SEND_EMPTY,
238 238
 					self::STREAMER_ARRAY => SYNC_PROVISION_APPNAME,
239
-				],  // TODO check
239
+				], // TODO check
240 240
 				SYNC_PROVISION_APPROVEDAPPLIST => [
241 241
 					self::STREAMER_VAR => "approvedapplist",
242 242
 					self::STREAMER_PROP => self::STREAMER_TYPE_SEND_EMPTY,
Please login to merge, or discard this patch.
lib/wbxml/wbxmldefs.php 1 patch
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -209,7 +209,7 @@  discard block
 block discarded – undo
209 209
 				0x3E => "CompleteTime", // Since 12.0
210 210
 				0x3F => "DisallowNewTimeProposal", // Since 14.0
211 211
 			],
212
-			3 => [ // Code page 3 is no longer in use, however, tokens 05 through 17 have been defined. 20100501
212
+			3 => [// Code page 3 is no longer in use, however, tokens 05 through 17 have been defined. 20100501
213 213
 				0x05 => "Notify",
214 214
 				0x06 => "Notification",
215 215
 				0x07 => "Version",
@@ -542,7 +542,7 @@  discard block
 block discarded – undo
542 542
 				0x11 => "Status", // Since 14.1
543 543
 				0x12 => "Data", // Since 14.1
544 544
 			],
545
-			0x11 => [ // Since 12.0
545
+			0x11 => [// Since 12.0
546 546
 				0x05 => "BodyPreference",
547 547
 				0x06 => "Type",
548 548
 				0x07 => "TruncationSize",
@@ -566,7 +566,7 @@  discard block
 block discarded – undo
566 566
 				0x1A => "BodyPart", // Since 14.1
567 567
 				0x1B => "Status", // Since 14.1
568 568
 			],
569
-			0x12 => [ // Since 12.0
569
+			0x12 => [// Since 12.0
570 570
 				0x05 => "Settings",
571 571
 				0x06 => "Status",
572 572
 				0x07 => "Get",
@@ -606,7 +606,7 @@  discard block
 block discarded – undo
606 606
 				0x29 => "SendDisabled", // Since 14.1
607 607
 				0x2B => "RightsManagementInformation", // Since 14.1
608 608
 			],
609
-			0x13 => [ // Since 12.0
609
+			0x13 => [// Since 12.0
610 610
 				0x05 => "LinkId",
611 611
 				0x06 => "DisplayName",
612 612
 				0x07 => "IsFolder",
@@ -616,7 +616,7 @@  discard block
 block discarded – undo
616 616
 				0x0B => "ContentLength",
617 617
 				0x0C => "ContentType",
618 618
 			],
619
-			0x14 => [ // Since 12.0
619
+			0x14 => [// Since 12.0
620 620
 				0x05 => "ItemOperations",
621 621
 				0x06 => "Fetch",
622 622
 				0x07 => "Store",
@@ -639,7 +639,7 @@  discard block
 block discarded – undo
639 639
 				0x18 => "ConversationId", // Since 14.0
640 640
 				0x19 => "MoveAlways", // Since 14.0
641 641
 			],
642
-			0x15 => [ // Since 14.0
642
+			0x15 => [// Since 14.0
643 643
 				0x05 => "SendMail",
644 644
 				0x06 => "SmartForward",
645 645
 				0x07 => "SmartReply",
@@ -656,7 +656,7 @@  discard block
 block discarded – undo
656 656
 				0x12 => "Status",
657 657
 				0x13 => "AccountId", // Since 14.1
658 658
 			],
659
-			0x16 => [ // Since 14.0
659
+			0x16 => [// Since 14.0
660 660
 				0x05 => "UmCallerId",
661 661
 				0x06 => "UmUserNotes",
662 662
 				0x07 => "UmAttDuration",
@@ -673,14 +673,14 @@  discard block
 block discarded – undo
673 673
 				0x12 => "FirstDayOfWeek", // Since 14.1
674 674
 				0x13 => "MeetingMessageType", // Since 14.1
675 675
 			],
676
-			0x17 => [ // Since 14.0
676
+			0x17 => [// Since 14.0
677 677
 				0x05 => "Subject",
678 678
 				0x06 => "MessageClass",
679 679
 				0x07 => "LastModifiedDate",
680 680
 				0x08 => "Categories",
681 681
 				0x09 => "Category",
682 682
 			],
683
-			0x18 => [ // Since 14.1
683
+			0x18 => [// Since 14.1
684 684
 				0x05 => "RightsManagementSupport",
685 685
 				0x06 => "RightsManagementTemplates",
686 686
 				0x07 => "RightsManagementTemplate",
Please login to merge, or discard this patch.
lib/core/loopdetection.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
 							$current['loopcount'] = 1;
759 759
 							// the MaxCount is the max number of messages exported before
760 760
 							$current['maxCount'] = $counter + (($maxItems < $queuedMessages) ? $maxItems : $queuedMessages);
761
-							$loop = true;   // loop mode!!
761
+							$loop = true; // loop mode!!
762 762
 						}
763 763
 					}
764 764
 					elseif ($queuedMessages == 0) {
@@ -778,7 +778,7 @@  discard block
 block discarded – undo
778 778
 							$this->ignore_messageid = $current['potential'];
779 779
 						}
780 780
 						$current['maxCount'] = $counter + (($maxItems < $queuedMessages) ? $maxItems : $queuedMessages);
781
-						$loop = true;   // loop mode!!
781
+						$loop = true; // loop mode!!
782 782
 					}
783 783
 				}
784 784
 			}
Please login to merge, or discard this patch.
lib/core/gsync.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@
 block discarded – undo
11 11
 	public const UNAUTHENTICATED = 1;
12 12
 	public const UNPROVISIONED = 2;
13 13
 	public const NOACTIVESYNCCOMMAND = 3;
14
-	public const WEBSERVICECOMMAND = 4;    // DEPRECATED
14
+	public const WEBSERVICECOMMAND = 4; // DEPRECATED
15 15
 	public const HIERARCHYCOMMAND = 5;
16 16
 	public const PLAININPUT = 6;
17 17
 	public const REQUESTHANDLER = 7;
Please login to merge, or discard this patch.
lib/wbxml/wbxmldecoder.php 1 patch
Spacing   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -34,8 +34,7 @@
 block discarded – undo
34 34
 		if (!isset(self::$loopCounter[$name])) {
35 35
 			self::$loopCounter[$name] = 0;
36 36
 		}
37
-		else {
38
-			++self::$loopCounter[$name];
37
+		else {++self::$loopCounter[$name];
39 38
 		}
40 39
 
41 40
 		if (self::$loopCounter[$name] > self::MAXLOOP) {
Please login to merge, or discard this patch.
lib/utils/g_RFC822.php 1 patch
Switch Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -410,22 +410,22 @@
 block discarded – undo
410 410
 
411 411
 		for (; $i < $iMax; ++$i) {
412 412
 			switch ($string[$i]) {
413
-			case '\\':
414
-				++$slashes;
413
+				case '\\':
414
+					++$slashes;
415 415
 
416
-				break;
416
+					break;
417 417
 
418
-			case '"':
419
-				if ($slashes % 2 == 0) {
420
-					$in_quote = !$in_quote;
421
-				}
422
-				// Fall through to default action below.
418
+				case '"':
419
+					if ($slashes % 2 == 0) {
420
+						$in_quote = !$in_quote;
421
+					}
422
+					// Fall through to default action below.
423 423
 
424
-				// no break
425
-			default:
426
-				$slashes = 0;
424
+					// no break
425
+				default:
426
+					$slashes = 0;
427 427
 
428
-				break;
428
+					break;
429 429
 			}
430 430
 		}
431 431
 
Please login to merge, or discard this patch.
lib/utils/timezoneutil.php 1 patch
Spacing   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -17,83 +17,83 @@  discard block
 block discarded – undo
17 17
 	 * Updated at: 01.06.2012
18 18
 	 */
19 19
 	private static $mstzones = [
20
-		"000" => ["Dateline Standard Time",                    "(GMT-12:00) International Date Line West"],
21
-		"001" => ["Samoa Standard Time",                       "(GMT-11:00) Midway Island, Samoa"],
22
-		"002" => ["Hawaiian Standard Time",                    "(GMT-10:00) Hawaii"],
23
-		"003" => ["Alaskan Standard Time",                     "(GMT-09:00) Alaska"],
24
-		"004" => ["Pacific Standard Time",                     "(GMT-08:00) Pacific Time (US and Canada); Tijuana"],
25
-		"010" => ["Mountain Standard Time",                    "(GMT-07:00) Mountain Time (US and Canada)"],
26
-		"013" => ["Mexico Standard Time 2",                    "(GMT-07:00) Chihuahua, La Paz, Mazatlan"],
27
-		"015" => ["US Mountain Standard Time",                 "(GMT-07:00) Arizona"],
28
-		"020" => ["Central Standard Time",                     "(GMT-06:00) Central Time (US and Canada"],
29
-		"025" => ["Canada Central Standard Time",              "(GMT-06:00) Saskatchewan"],
30
-		"030" => ["Mexico Standard Time",                      "(GMT-06:00) Guadalajara, Mexico City, Monterrey"],
31
-		"033" => ["Central America Standard Time",             "(GMT-06:00) Central America"],
32
-		"035" => ["Eastern Standard Time",                     "(GMT-05:00) Eastern Time (US and Canada)"],
33
-		"040" => ["US Eastern Standard Time",                  "(GMT-05:00) Indiana (East)"],
34
-		"045" => ["SA Pacific Standard Time",                  "(GMT-05:00) Bogota, Lima, Quito"],
35
-		"uk1" => ["Venezuela Standard Time",                   "(GMT-04:30) Caracas"],                     // added
36
-		"050" => ["Atlantic Standard Time",                    "(GMT-04:00) Atlantic Time (Canada)"],
37
-		"055" => ["SA Western Standard Time",                  "(GMT-04:00) Caracas, La Paz"],
38
-		"056" => ["Pacific SA Standard Time",                  "(GMT-04:00) Santiago"],
39
-		"060" => ["Newfoundland and Labrador Standard Time",   "(GMT-03:30) Newfoundland and Labrador"],
40
-		"065" => ["E South America Standard Time",             "(GMT-03:00) Brasilia"],
41
-		"070" => ["SA Eastern Standard Time",                  "(GMT-03:00) Buenos Aires, Georgetown"],
42
-		"073" => ["Greenland Standard Time",                   "(GMT-03:00) Greenland"],
43
-		"075" => ["Mid-Atlantic Standard Time",                "(GMT-02:00) Mid-Atlantic"],
44
-		"080" => ["Azores Standard Time",                      "(GMT-01:00) Azores"],
45
-		"083" => ["Cape Verde Standard Time",                  "(GMT-01:00) Cape Verde Islands"],
46
-		"085" => ["GMT Standard Time",                         "(GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London"],
47
-		"090" => ["Greenwich Standard Time",                   "(GMT) Casablanca, Monrovia"],
48
-		"095" => ["Central Europe Standard Time",              "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"],
49
-		"100" => ["Central European Standard Time",            "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb"],
50
-		"105" => ["Romance Standard Time",                     "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"],
51
-		"110" => ["W Europe Standard Time",                    "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"],
52
-		"111" => ["W. Europe Standard Time",                   "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"],
53
-		"113" => ["W Central Africa Standard Time",            "(GMT+01:00) West Central Africa"],
54
-		"115" => ["E Europe Standard Time",                    "(GMT+02:00) Bucharest"],
55
-		"120" => ["Egypt Standard Time",                       "(GMT+02:00) Cairo"],
56
-		"125" => ["FLE Standard Time",                         "(GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius"],
57
-		"130" => ["GTB Standard Time",                         "(GMT+02:00) Athens, Istanbul, Minsk"],
58
-		"135" => ["Israel Standard Time",                      "(GMT+02:00) Jerusalem"],
59
-		"140" => ["South Africa Standard Time",                "(GMT+02:00) Harare, Pretoria"],
60
-		"145" => ["Russian Standard Time",                     "(GMT+03:00) Moscow, St. Petersburg, Volgograd"],
61
-		"150" => ["Arab Standard Time",                        "(GMT+03:00) Kuwait, Riyadh"],
62
-		"155" => ["E Africa Standard Time",                    "(GMT+03:00) Nairobi"],
63
-		"158" => ["Arabic Standard Time",                      "(GMT+03:00) Baghdad"],
64
-		"160" => ["Iran Standard Time",                        "(GMT+03:30) Tehran"],
65
-		"165" => ["Arabian Standard Time",                     "(GMT+04:00) Abu Dhabi, Muscat"],
66
-		"170" => ["Caucasus Standard Time",                    "(GMT+04:00) Baku, Tbilisi, Yerevan"],
20
+		"000" => ["Dateline Standard Time", "(GMT-12:00) International Date Line West"],
21
+		"001" => ["Samoa Standard Time", "(GMT-11:00) Midway Island, Samoa"],
22
+		"002" => ["Hawaiian Standard Time", "(GMT-10:00) Hawaii"],
23
+		"003" => ["Alaskan Standard Time", "(GMT-09:00) Alaska"],
24
+		"004" => ["Pacific Standard Time", "(GMT-08:00) Pacific Time (US and Canada); Tijuana"],
25
+		"010" => ["Mountain Standard Time", "(GMT-07:00) Mountain Time (US and Canada)"],
26
+		"013" => ["Mexico Standard Time 2", "(GMT-07:00) Chihuahua, La Paz, Mazatlan"],
27
+		"015" => ["US Mountain Standard Time", "(GMT-07:00) Arizona"],
28
+		"020" => ["Central Standard Time", "(GMT-06:00) Central Time (US and Canada"],
29
+		"025" => ["Canada Central Standard Time", "(GMT-06:00) Saskatchewan"],
30
+		"030" => ["Mexico Standard Time", "(GMT-06:00) Guadalajara, Mexico City, Monterrey"],
31
+		"033" => ["Central America Standard Time", "(GMT-06:00) Central America"],
32
+		"035" => ["Eastern Standard Time", "(GMT-05:00) Eastern Time (US and Canada)"],
33
+		"040" => ["US Eastern Standard Time", "(GMT-05:00) Indiana (East)"],
34
+		"045" => ["SA Pacific Standard Time", "(GMT-05:00) Bogota, Lima, Quito"],
35
+		"uk1" => ["Venezuela Standard Time", "(GMT-04:30) Caracas"], // added
36
+		"050" => ["Atlantic Standard Time", "(GMT-04:00) Atlantic Time (Canada)"],
37
+		"055" => ["SA Western Standard Time", "(GMT-04:00) Caracas, La Paz"],
38
+		"056" => ["Pacific SA Standard Time", "(GMT-04:00) Santiago"],
39
+		"060" => ["Newfoundland and Labrador Standard Time", "(GMT-03:30) Newfoundland and Labrador"],
40
+		"065" => ["E South America Standard Time", "(GMT-03:00) Brasilia"],
41
+		"070" => ["SA Eastern Standard Time", "(GMT-03:00) Buenos Aires, Georgetown"],
42
+		"073" => ["Greenland Standard Time", "(GMT-03:00) Greenland"],
43
+		"075" => ["Mid-Atlantic Standard Time", "(GMT-02:00) Mid-Atlantic"],
44
+		"080" => ["Azores Standard Time", "(GMT-01:00) Azores"],
45
+		"083" => ["Cape Verde Standard Time", "(GMT-01:00) Cape Verde Islands"],
46
+		"085" => ["GMT Standard Time", "(GMT) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London"],
47
+		"090" => ["Greenwich Standard Time", "(GMT) Casablanca, Monrovia"],
48
+		"095" => ["Central Europe Standard Time", "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"],
49
+		"100" => ["Central European Standard Time", "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb"],
50
+		"105" => ["Romance Standard Time", "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"],
51
+		"110" => ["W Europe Standard Time", "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"],
52
+		"111" => ["W. Europe Standard Time", "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"],
53
+		"113" => ["W Central Africa Standard Time", "(GMT+01:00) West Central Africa"],
54
+		"115" => ["E Europe Standard Time", "(GMT+02:00) Bucharest"],
55
+		"120" => ["Egypt Standard Time", "(GMT+02:00) Cairo"],
56
+		"125" => ["FLE Standard Time", "(GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius"],
57
+		"130" => ["GTB Standard Time", "(GMT+02:00) Athens, Istanbul, Minsk"],
58
+		"135" => ["Israel Standard Time", "(GMT+02:00) Jerusalem"],
59
+		"140" => ["South Africa Standard Time", "(GMT+02:00) Harare, Pretoria"],
60
+		"145" => ["Russian Standard Time", "(GMT+03:00) Moscow, St. Petersburg, Volgograd"],
61
+		"150" => ["Arab Standard Time", "(GMT+03:00) Kuwait, Riyadh"],
62
+		"155" => ["E Africa Standard Time", "(GMT+03:00) Nairobi"],
63
+		"158" => ["Arabic Standard Time", "(GMT+03:00) Baghdad"],
64
+		"160" => ["Iran Standard Time", "(GMT+03:30) Tehran"],
65
+		"165" => ["Arabian Standard Time", "(GMT+04:00) Abu Dhabi, Muscat"],
66
+		"170" => ["Caucasus Standard Time", "(GMT+04:00) Baku, Tbilisi, Yerevan"],
67 67
 		"175" => ["Transitional Islamic State of Afghanistan Standard Time", "(GMT+04:30) Kabul"],
68
-		"180" => ["Ekaterinburg Standard Time",                "(GMT+05:00) Ekaterinburg"],
69
-		"185" => ["West Asia Standard Time",                   "(GMT+05:00) Islamabad, Karachi, Tashkent"],
70
-		"190" => ["India Standard Time",                       "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi"],
71
-		"193" => ["Nepal Standard Time",                       "(GMT+05:45) Kathmandu"],
72
-		"195" => ["Central Asia Standard Time",                "(GMT+06:00) Astana, Dhaka"],
73
-		"200" => ["Sri Lanka Standard Time",                   "(GMT+06:00) Sri Jayawardenepura"],
74
-		"201" => ["N Central Asia Standard Time",              "(GMT+06:00) Almaty, Novosibirsk"],
75
-		"203" => ["Myanmar Standard Time",                     "(GMT+06:30) Yangon Rangoon"],
76
-		"205" => ["SE Asia Standard Time",                     "(GMT+07:00) Bangkok, Hanoi, Jakarta"],
77
-		"207" => ["North Asia Standard Time",                  "(GMT+07:00) Krasnoyarsk"],
78
-		"210" => ["China Standard Time",                       "(GMT+08:00) Beijing, Chongqing, Hong Kong SAR, Urumqi"],
79
-		"215" => ["Singapore Standard Time",                   "(GMT+08:00) Kuala Lumpur, Singapore"],
80
-		"220" => ["Taipei Standard Time",                      "(GMT+08:00) Taipei"],
81
-		"225" => ["W Australia Standard Time",                 "(GMT+08:00) Perth"],
82
-		"227" => ["North Asia East Standard Time",             "(GMT+08:00) Irkutsk, Ulaanbaatar"],
83
-		"230" => ["Korea Standard Time",                       "(GMT+09:00) Seoul"],
84
-		"235" => ["Tokyo Standard Time",                       "(GMT+09:00) Osaka, Sapporo, Tokyo"],
85
-		"240" => ["Yakutsk Standard Time",                     "(GMT+09:00) Yakutsk"],
86
-		"245" => ["AUS Central Standard Time",                 "(GMT+09:30) Darwin"],
87
-		"250" => ["Cen Australia Standard Time",               "(GMT+09:30) Adelaide"],
88
-		"255" => ["AUS Eastern Standard Time",                 "(GMT+10:00) Canberra, Melbourne, Sydney"],
89
-		"260" => ["E Australia Standard Time",                 "(GMT+10:00) Brisbane"],
90
-		"265" => ["Tasmania Standard Time",                    "(GMT+10:00) Hobart"],
91
-		"270" => ["Vladivostok Standard Time",                 "(GMT+10:00) Vladivostok"],
92
-		"275" => ["West Pacific Standard Time",                "(GMT+10:00) Guam, Port Moresby"],
93
-		"280" => ["Central Pacific Standard Time",             "(GMT+11:00) Magadan, Solomon Islands, New Caledonia"],
94
-		"285" => ["Fiji Islands Standard Time",                "(GMT+12:00) Fiji Islands, Kamchatka, Marshall Islands"],
95
-		"290" => ["New Zealand Standard Time",                 "(GMT+12:00) Auckland, Wellington"],
96
-		"300" => ["Tonga Standard Time",                       "(GMT+13:00) Nuku'alofa"],
68
+		"180" => ["Ekaterinburg Standard Time", "(GMT+05:00) Ekaterinburg"],
69
+		"185" => ["West Asia Standard Time", "(GMT+05:00) Islamabad, Karachi, Tashkent"],
70
+		"190" => ["India Standard Time", "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi"],
71
+		"193" => ["Nepal Standard Time", "(GMT+05:45) Kathmandu"],
72
+		"195" => ["Central Asia Standard Time", "(GMT+06:00) Astana, Dhaka"],
73
+		"200" => ["Sri Lanka Standard Time", "(GMT+06:00) Sri Jayawardenepura"],
74
+		"201" => ["N Central Asia Standard Time", "(GMT+06:00) Almaty, Novosibirsk"],
75
+		"203" => ["Myanmar Standard Time", "(GMT+06:30) Yangon Rangoon"],
76
+		"205" => ["SE Asia Standard Time", "(GMT+07:00) Bangkok, Hanoi, Jakarta"],
77
+		"207" => ["North Asia Standard Time", "(GMT+07:00) Krasnoyarsk"],
78
+		"210" => ["China Standard Time", "(GMT+08:00) Beijing, Chongqing, Hong Kong SAR, Urumqi"],
79
+		"215" => ["Singapore Standard Time", "(GMT+08:00) Kuala Lumpur, Singapore"],
80
+		"220" => ["Taipei Standard Time", "(GMT+08:00) Taipei"],
81
+		"225" => ["W Australia Standard Time", "(GMT+08:00) Perth"],
82
+		"227" => ["North Asia East Standard Time", "(GMT+08:00) Irkutsk, Ulaanbaatar"],
83
+		"230" => ["Korea Standard Time", "(GMT+09:00) Seoul"],
84
+		"235" => ["Tokyo Standard Time", "(GMT+09:00) Osaka, Sapporo, Tokyo"],
85
+		"240" => ["Yakutsk Standard Time", "(GMT+09:00) Yakutsk"],
86
+		"245" => ["AUS Central Standard Time", "(GMT+09:30) Darwin"],
87
+		"250" => ["Cen Australia Standard Time", "(GMT+09:30) Adelaide"],
88
+		"255" => ["AUS Eastern Standard Time", "(GMT+10:00) Canberra, Melbourne, Sydney"],
89
+		"260" => ["E Australia Standard Time", "(GMT+10:00) Brisbane"],
90
+		"265" => ["Tasmania Standard Time", "(GMT+10:00) Hobart"],
91
+		"270" => ["Vladivostok Standard Time", "(GMT+10:00) Vladivostok"],
92
+		"275" => ["West Pacific Standard Time", "(GMT+10:00) Guam, Port Moresby"],
93
+		"280" => ["Central Pacific Standard Time", "(GMT+11:00) Magadan, Solomon Islands, New Caledonia"],
94
+		"285" => ["Fiji Islands Standard Time", "(GMT+12:00) Fiji Islands, Kamchatka, Marshall Islands"],
95
+		"290" => ["New Zealand Standard Time", "(GMT+12:00) Auckland, Wellington"],
96
+		"300" => ["Tonga Standard Time", "(GMT+13:00) Nuku'alofa"],
97 97
 	];
98 98
 
99 99
 	/**
@@ -127,104 +127,104 @@  discard block
 block discarded – undo
127 127
 	 * Created at: 01.06.2012
128 128
 	 */
129 129
 	private static $tzonesoffsets = [
130
-		"Transitional Islamic State of Afghanistan Standard Time" => [-270, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
131
-		"Alaskan Standard Time" => [540, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
132
-		"Arab Standard Time" => [-180, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
133
-		"Arabian Standard Time" => [-240, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
134
-		"Arabic Standard Time" => [-180, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
130
+		"Transitional Islamic State of Afghanistan Standard Time" => [-270, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
131
+		"Alaskan Standard Time" => [540, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
132
+		"Arab Standard Time" => [-180, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
133
+		"Arabian Standard Time" => [-240, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
134
+		"Arabic Standard Time" => [-180, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
135 135
 		// "Argentina Standard Time"                   => array(180, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
136
-		"Atlantic Standard Time" => [240, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
137
-		"AUS Central Standard Time" => [-570, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
138
-		"AUS Eastern Standard Time" => [-600, 0, -60,  0, 4, 0, 1, 3, 0, 0, 0,  0, 10, 0, 1, 2, 0, 0, 0],
136
+		"Atlantic Standard Time" => [240, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
137
+		"AUS Central Standard Time" => [-570, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
138
+		"AUS Eastern Standard Time" => [-600, 0, -60, 0, 4, 0, 1, 3, 0, 0, 0, 0, 10, 0, 1, 2, 0, 0, 0],
139 139
 		// "Azerbaijan Standard Time"                  => array(-240, 0, -60,  0, 10, 0, 5, 5, 0, 0, 0,  0, 3, 0, 5, 4, 0, 0, 0),
140
-		"Azores Standard Time" => [60, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
140
+		"Azores Standard Time" => [60, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
141 141
 		// "Bangladesh Standard Time"                  => array(-360, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
142
-		"Canada Central Standard Time" => [360, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
143
-		"Cape Verde Standard Time" => [60, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
144
-		"Caucasus Standard Time" => [-240, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
145
-		"Cen Australia Standard Time" => [-570, 0, -60,  0, 4, 0, 1, 3, 0, 0, 0,  0, 10, 0, 1, 2, 0, 0, 0],
146
-		"Central America Standard Time" => [360, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
147
-		"Central Asia Standard Time" => [-360, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
142
+		"Canada Central Standard Time" => [360, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
143
+		"Cape Verde Standard Time" => [60, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
144
+		"Caucasus Standard Time" => [-240, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
145
+		"Cen Australia Standard Time" => [-570, 0, -60, 0, 4, 0, 1, 3, 0, 0, 0, 0, 10, 0, 1, 2, 0, 0, 0],
146
+		"Central America Standard Time" => [360, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
147
+		"Central Asia Standard Time" => [-360, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
148 148
 		// "Central Brazilian Standard Time"           => array(240, 0, -60,  0, 2, 6, 4, 23, 59, 59, 999,  0, 10, 6, 3, 23, 59, 59, 999),
149
-		"Central Europe Standard Time" => [-60, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
150
-		"Central European Standard Time" => [-60, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
151
-		"Central Pacific Standard Time" => [-660, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
152
-		"Central Standard Time" => [360, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
153
-		"Mexico Standard Time" => [360, 0, -60,  0, 10, 0, 5, 2, 0, 0, 0,  0, 4, 0, 1, 2, 0, 0, 0],
154
-		"China Standard Time" => [-480, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
155
-		"Dateline Standard Time" => [720, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
156
-		"E Africa Standard Time" => [-180, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
157
-		"E Australia Standard Time" => [-600, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
158
-		"E Europe Standard Time" => [-120, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
159
-		"E South America Standard Time" => [180, 0, -60,  0, 2, 6, 4, 23, 59, 59, 999,  0, 10, 6, 3, 23, 59, 59, 999],
160
-		"Eastern Standard Time" => [300, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
161
-		"Egypt Standard Time" => [-120, 0, -60,  0, 9, 4, 5, 23, 59, 59, 999,  0, 4, 4, 5, 23, 59, 59, 999],
162
-		"Ekaterinburg Standard Time" => [-300, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
163
-		"Fiji Islands Standard Time" => [-720, 0, -60,  0, 3, 0, 5, 3, 0, 0, 0,  0, 10, 0, 4, 2, 0, 0, 0],
164
-		"FLE Standard Time" => [-120, 0, -60,  0, 10, 0, 5, 4, 0, 0, 0,  0, 3, 0, 5, 3, 0, 0, 0],
149
+		"Central Europe Standard Time" => [-60, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
150
+		"Central European Standard Time" => [-60, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
151
+		"Central Pacific Standard Time" => [-660, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
152
+		"Central Standard Time" => [360, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
153
+		"Mexico Standard Time" => [360, 0, -60, 0, 10, 0, 5, 2, 0, 0, 0, 0, 4, 0, 1, 2, 0, 0, 0],
154
+		"China Standard Time" => [-480, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
155
+		"Dateline Standard Time" => [720, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
156
+		"E Africa Standard Time" => [-180, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
157
+		"E Australia Standard Time" => [-600, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
158
+		"E Europe Standard Time" => [-120, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
159
+		"E South America Standard Time" => [180, 0, -60, 0, 2, 6, 4, 23, 59, 59, 999, 0, 10, 6, 3, 23, 59, 59, 999],
160
+		"Eastern Standard Time" => [300, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
161
+		"Egypt Standard Time" => [-120, 0, -60, 0, 9, 4, 5, 23, 59, 59, 999, 0, 4, 4, 5, 23, 59, 59, 999],
162
+		"Ekaterinburg Standard Time" => [-300, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
163
+		"Fiji Islands Standard Time" => [-720, 0, -60, 0, 3, 0, 5, 3, 0, 0, 0, 0, 10, 0, 4, 2, 0, 0, 0],
164
+		"FLE Standard Time" => [-120, 0, -60, 0, 10, 0, 5, 4, 0, 0, 0, 0, 3, 0, 5, 3, 0, 0, 0],
165 165
 		// "Georgian Standard Time"                    => array(-240, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
166
-		"GMT Standard Time" => [0, 0, -60,  0, 10, 0, 5, 2, 0, 0, 0,  0, 3, 0, 5, 1, 0, 0, 0],
167
-		"Greenland Standard Time" => [180, 0, -60,  0, 10, 6, 5, 23, 0, 0, 0,  0, 3, 6, 4, 22, 0, 0, 0],
168
-		"Greenwich Standard Time" => [0, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
169
-		"GTB Standard Time" => [-120, 0, -60,  0, 10, 0, 5, 4, 0, 0, 0,  0, 3, 0, 5, 3, 0, 0, 0],
170
-		"Hawaiian Standard Time" => [600, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
171
-		"India Standard Time" => [-330, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
172
-		"Iran Standard Time" => [-210, 0, -60,  0, 9, 1, 3, 23, 59, 59, 999,  0, 3, 6, 3, 23, 59, 59, 999],
173
-		"Israel Standard Time" => [-120, 0, -60,  0, 9, 0, 4, 2, 0, 0, 0,  0, 3, 5, 5, 2, 0, 0, 0],
166
+		"GMT Standard Time" => [0, 0, -60, 0, 10, 0, 5, 2, 0, 0, 0, 0, 3, 0, 5, 1, 0, 0, 0],
167
+		"Greenland Standard Time" => [180, 0, -60, 0, 10, 6, 5, 23, 0, 0, 0, 0, 3, 6, 4, 22, 0, 0, 0],
168
+		"Greenwich Standard Time" => [0, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
169
+		"GTB Standard Time" => [-120, 0, -60, 0, 10, 0, 5, 4, 0, 0, 0, 0, 3, 0, 5, 3, 0, 0, 0],
170
+		"Hawaiian Standard Time" => [600, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
171
+		"India Standard Time" => [-330, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
172
+		"Iran Standard Time" => [-210, 0, -60, 0, 9, 1, 3, 23, 59, 59, 999, 0, 3, 6, 3, 23, 59, 59, 999],
173
+		"Israel Standard Time" => [-120, 0, -60, 0, 9, 0, 4, 2, 0, 0, 0, 0, 3, 5, 5, 2, 0, 0, 0],
174 174
 		// "Jordan Standard Time"                      => array(-120, 0, -60,  0, 10, 5, 5, 1, 0, 0, 0,  0, 3, 4, 5, 23, 59, 59, 999),
175 175
 		// "Kamchatka Standard Time"                   => array(-720, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0),
176
-		"Korea Standard Time" => [-540, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
176
+		"Korea Standard Time" => [-540, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
177 177
 		// "Magadan Standard Time"                     => array(-660, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0),
178 178
 		// "Mauritius Standard Time"                   => array(-240, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
179
-		"Mid-Atlantic Standard Time" => [120, 0, -60,  0, 9, 0, 5, 2, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
179
+		"Mid-Atlantic Standard Time" => [120, 0, -60, 0, 9, 0, 5, 2, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
180 180
 		// "Middle East Standard Time"                 => array(-120, 0, -60,  0, 10, 6, 5, 23, 59, 59, 999,  0, 3, 6, 4, 23, 59, 59, 999),
181 181
 		// "Montevideo Standard Time"                  => array(180, 0, -60,  0, 3, 0, 2, 2, 0, 0, 0,  0, 10, 0, 1, 2, 0, 0, 0),
182 182
 		// "Morocco Standard Time"                     => array(0, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
183
-		"Mountain Standard Time" => [420, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
184
-		"Mexico Standard Time 2" => [420, 0, -60,  0, 10, 0, 5, 2, 0, 0, 0,  0, 4, 0, 1, 2, 0, 0, 0],
185
-		"Myanmar Standard Time" => [-390, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
186
-		"N Central Asia Standard Time" => [-360, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
183
+		"Mountain Standard Time" => [420, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
184
+		"Mexico Standard Time 2" => [420, 0, -60, 0, 10, 0, 5, 2, 0, 0, 0, 0, 4, 0, 1, 2, 0, 0, 0],
185
+		"Myanmar Standard Time" => [-390, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
186
+		"N Central Asia Standard Time" => [-360, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
187 187
 		// "Namibia Standard Time"                     => array(-60, 0, -60,  0, 4, 0, 1, 2, 0, 0, 0,  0, 9, 0, 1, 2, 0, 0, 0),
188
-		"Nepal Standard Time" => [-345, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
189
-		"New Zealand Standard Time" => [-720, 0, -60,  0, 4, 0, 1, 3, 0, 0, 0,  0, 9, 0, 5, 2, 0, 0, 0],
190
-		"Newfoundland and Labrador Standard Time" => [210, 0, -60,  0, 11, 0, 1, 0, 1, 0, 0,  0, 3, 0, 2, 0, 1, 0, 0],
191
-		"North Asia East Standard Time" => [-480, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
192
-		"North Asia Standard Time" => [-420, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
193
-		"Pacific SA Standard Time" => [240, 0, -60,  0, 3, 6, 2, 23, 59, 59, 999,  0, 10, 6, 2, 23, 59, 59, 999],
194
-		"Pacific Standard Time" => [480, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
188
+		"Nepal Standard Time" => [-345, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
189
+		"New Zealand Standard Time" => [-720, 0, -60, 0, 4, 0, 1, 3, 0, 0, 0, 0, 9, 0, 5, 2, 0, 0, 0],
190
+		"Newfoundland and Labrador Standard Time" => [210, 0, -60, 0, 11, 0, 1, 0, 1, 0, 0, 0, 3, 0, 2, 0, 1, 0, 0],
191
+		"North Asia East Standard Time" => [-480, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
192
+		"North Asia Standard Time" => [-420, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
193
+		"Pacific SA Standard Time" => [240, 0, -60, 0, 3, 6, 2, 23, 59, 59, 999, 0, 10, 6, 2, 23, 59, 59, 999],
194
+		"Pacific Standard Time" => [480, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
195 195
 		// "Pacific Standard Time (Mexico)"            => array(480, 0, -60,  0, 10, 0, 5, 2, 0, 0, 0,  0, 4, 0, 1, 2, 0, 0, 0),
196 196
 		// "Pakistan Standard Time"                    => array(-300, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
197 197
 		// "Paraguay Standard Time"                    => array(240, 0, -60,  0, 4, 6, 1, 23, 59, 59, 999,  0, 10, 6, 1, 23, 59, 59, 999),
198
-		"Romance Standard Time" => [-60, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
199
-		"Russian Standard Time" => [-180, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
200
-		"SA Eastern Standard Time" => [180, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
201
-		"SA Pacific Standard Time" => [300, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
202
-		"SA Western Standard Time" => [240, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
203
-		"Samoa Standard Time" => [660, 0, -60,  0, 3, 6, 5, 23, 59, 59, 999,  0, 9, 6, 5, 23, 59, 59, 999],
204
-		"SE Asia Standard Time" => [-420, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
205
-		"Singapore Standard Time" => [-480, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
206
-		"South Africa Standard Time" => [-120, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
207
-		"Sri Lanka Standard Time" => [-330, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
198
+		"Romance Standard Time" => [-60, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
199
+		"Russian Standard Time" => [-180, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
200
+		"SA Eastern Standard Time" => [180, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
201
+		"SA Pacific Standard Time" => [300, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
202
+		"SA Western Standard Time" => [240, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
203
+		"Samoa Standard Time" => [660, 0, -60, 0, 3, 6, 5, 23, 59, 59, 999, 0, 9, 6, 5, 23, 59, 59, 999],
204
+		"SE Asia Standard Time" => [-420, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
205
+		"Singapore Standard Time" => [-480, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
206
+		"South Africa Standard Time" => [-120, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
207
+		"Sri Lanka Standard Time" => [-330, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
208 208
 		// "Syria Standard Time"                       => array(-120, 0, -60,  0, 10, 4, 5, 23, 59, 59, 999,  0, 4, 4, 1, 23, 59, 59, 999),
209
-		"Taipei Standard Time" => [-480, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
210
-		"Tasmania Standard Time" => [-600, 0, -60,  0, 4, 0, 1, 3, 0, 0, 0,  0, 10, 0, 1, 2, 0, 0, 0],
211
-		"Tokyo Standard Time" => [-540, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
212
-		"Tonga Standard Time" => [-780, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
209
+		"Taipei Standard Time" => [-480, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
210
+		"Tasmania Standard Time" => [-600, 0, -60, 0, 4, 0, 1, 3, 0, 0, 0, 0, 10, 0, 1, 2, 0, 0, 0],
211
+		"Tokyo Standard Time" => [-540, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
212
+		"Tonga Standard Time" => [-780, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
213 213
 		// "Ulaanbaatar Standard Time"                 => array(-480, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
214
-		"US Eastern Standard Time" => [300, 0, -60,  0, 11, 0, 1, 2, 0, 0, 0,  0, 3, 0, 2, 2, 0, 0, 0],
215
-		"US Mountain Standard Time" => [420, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
214
+		"US Eastern Standard Time" => [300, 0, -60, 0, 11, 0, 1, 2, 0, 0, 0, 0, 3, 0, 2, 2, 0, 0, 0],
215
+		"US Mountain Standard Time" => [420, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
216 216
 		// "UTC"                                       => array(0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
217 217
 		// "UTC+12"                                    => array(-720, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
218 218
 		// "UTC-02"                                    => array(120, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
219 219
 		// "UTC-11"                                    => array(660, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0),
220
-		"Venezuela Standard Time" => [270, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
221
-		"Vladivostok Standard Time" => [-600, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
222
-		"W Australia Standard Time" => [-480, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
223
-		"W Central Africa Standard Time" => [-60, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
224
-		"W Europe Standard Time" => [-60, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
225
-		"West Asia Standard Time" => [-300, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
226
-		"West Pacific Standard Time" => [-600, 0, -60,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0],
227
-		"Yakutsk Standard Time" => [-540, 0, -60,  0, 10, 0, 5, 3, 0, 0, 0,  0, 3, 0, 5, 2, 0, 0, 0],
220
+		"Venezuela Standard Time" => [270, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
221
+		"Vladivostok Standard Time" => [-600, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
222
+		"W Australia Standard Time" => [-480, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
223
+		"W Central Africa Standard Time" => [-60, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
224
+		"W Europe Standard Time" => [-60, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
225
+		"West Asia Standard Time" => [-300, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
226
+		"West Pacific Standard Time" => [-600, 0, -60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
227
+		"Yakutsk Standard Time" => [-540, 0, -60, 0, 10, 0, 5, 3, 0, 0, 0, 0, 3, 0, 5, 2, 0, 0, 0],
228 228
 	];
229 229
 
230 230
 	/**
Please login to merge, or discard this patch.
mapi/class.baserecurrence.php 2 patches
Switch Indentation   +143 added lines, -143 removed lines patch added patch discarded remove patch
@@ -1739,193 +1739,193 @@
 block discarded – undo
1739 1739
 				// Loop through the entire recurrence range of dates, and check for each occurrence whether it is in the view range.
1740 1740
 
1741 1741
 				switch ($this->recur["type"]) {
1742
-				case 10:
1743
-					// Daily
1744
-					if ($this->recur["everyn"] <= 0) {
1745
-						$this->recur["everyn"] = 1440;
1746
-					}
1747
-
1748
-					if ($this->recur["subtype"] == 0) {
1749
-						// Every Nth day
1750
-						for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += 60 * $this->recur["everyn"]) {
1751
-							$this->processOccurrenceItem($items, $start, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1742
+					case 10:
1743
+						// Daily
1744
+						if ($this->recur["everyn"] <= 0) {
1745
+							$this->recur["everyn"] = 1440;
1752 1746
 						}
1753
-					}
1754
-					else {
1755
-						// Every workday
1756
-						for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += 60 * 1440) {
1757
-							$nowtime = $this->gmtime($now);
1758
-							if ($nowtime["tm_wday"] > 0 && $nowtime["tm_wday"] < 6) { // only add items in the given timespace
1747
+
1748
+						if ($this->recur["subtype"] == 0) {
1749
+							// Every Nth day
1750
+							for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += 60 * $this->recur["everyn"]) {
1759 1751
 								$this->processOccurrenceItem($items, $start, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1760 1752
 							}
1761 1753
 						}
1762
-					}
1763
-
1764
-					break;
1754
+						else {
1755
+							// Every workday
1756
+							for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += 60 * 1440) {
1757
+								$nowtime = $this->gmtime($now);
1758
+								if ($nowtime["tm_wday"] > 0 && $nowtime["tm_wday"] < 6) { // only add items in the given timespace
1759
+									$this->processOccurrenceItem($items, $start, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1760
+								}
1761
+							}
1762
+						}
1765 1763
 
1766
-				case 11:
1767
-					// Weekly
1768
-					if ($this->recur["everyn"] <= 0) {
1769
-						$this->recur["everyn"] = 1;
1770
-					}
1764
+						break;
1771 1765
 
1772
-					// If sliding flag is set then move to 'n' weeks
1773
-					if ($this->recur['regen']) {
1774
-						$daystart += (60 * 60 * 24 * 7 * $this->recur["everyn"]);
1775
-					}
1766
+					case 11:
1767
+						// Weekly
1768
+						if ($this->recur["everyn"] <= 0) {
1769
+							$this->recur["everyn"] = 1;
1770
+						}
1776 1771
 
1777
-					for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += (60 * 60 * 24 * 7 * $this->recur["everyn"])) {
1772
+						// If sliding flag is set then move to 'n' weeks
1778 1773
 						if ($this->recur['regen']) {
1779
-							$this->processOccurrenceItem($items, $start, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1774
+							$daystart += (60 * 60 * 24 * 7 * $this->recur["everyn"]);
1780 1775
 						}
1781
-						else {
1782
-							// Loop through the whole following week to the first occurrence of the week, add each day that is specified
1783
-							for ($wday = 0; $wday < 7; ++$wday) {
1784
-								$daynow = $now + $wday * 60 * 60 * 24;
1785
-								// checks weather the next coming day in recurring pattern is less than or equal to end day of the recurring item
1786
-								if ($daynow <= $dayend) {
1787
-									$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1788
-									if (($this->recur["weekdays"] & (1 << $nowtime["tm_wday"]))) { // Selected ?
1789
-										$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1776
+
1777
+						for ($now = $daystart; $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += (60 * 60 * 24 * 7 * $this->recur["everyn"])) {
1778
+							if ($this->recur['regen']) {
1779
+								$this->processOccurrenceItem($items, $start, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1780
+							}
1781
+							else {
1782
+								// Loop through the whole following week to the first occurrence of the week, add each day that is specified
1783
+								for ($wday = 0; $wday < 7; ++$wday) {
1784
+									$daynow = $now + $wday * 60 * 60 * 24;
1785
+									// checks weather the next coming day in recurring pattern is less than or equal to end day of the recurring item
1786
+									if ($daynow <= $dayend) {
1787
+										$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1788
+										if (($this->recur["weekdays"] & (1 << $nowtime["tm_wday"]))) { // Selected ?
1789
+											$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1790
+										}
1790 1791
 									}
1791 1792
 								}
1792 1793
 							}
1793 1794
 						}
1794
-					}
1795 1795
 
1796
-					break;
1797
-
1798
-				case 12:
1799
-					// Monthly
1800
-					if ($this->recur["everyn"] <= 0) {
1801
-						$this->recur["everyn"] = 1;
1802
-					}
1796
+						break;
1803 1797
 
1804
-					// Loop through all months from start to end of occurrence, starting at beginning of first month
1805
-					for ($now = $this->monthStartOf($daystart); $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += $this->daysInMonth($now, $this->recur["everyn"]) * 24 * 60 * 60) {
1806
-						if (isset($this->recur["monthday"]) && ($this->recur['monthday'] != "undefined") && !$this->recur['regen']) { // Day M of every N months
1807
-							$difference = 1;
1808
-							if ($this->daysInMonth($now, $this->recur["everyn"]) < $this->recur["monthday"]) {
1809
-								$difference = $this->recur["monthday"] - $this->daysInMonth($now, $this->recur["everyn"]) + 1;
1810
-							}
1811
-							$daynow = $now + (($this->recur["monthday"] - $difference) * 24 * 60 * 60);
1812
-							// checks weather the next coming day in recurrence pattern is less than or equal to end day of the recurring item
1813
-							if ($daynow <= $dayend) {
1814
-								$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1815
-							}
1798
+					case 12:
1799
+						// Monthly
1800
+						if ($this->recur["everyn"] <= 0) {
1801
+							$this->recur["everyn"] = 1;
1816 1802
 						}
1817
-						elseif (isset($this->recur["nday"], $this->recur["weekdays"])) { // Nth [weekday] of every N months
1818
-							// Sanitize input
1819
-							if ($this->recur["weekdays"] == 0) {
1820
-								$this->recur["weekdays"] = 1;
1821
-							}
1822 1803
 
1823
-							// If nday is not set to the last day in the month
1824
-							if ($this->recur["nday"] < 5) {
1825
-								// keep the track of no. of time correct selection pattern(like 2nd weekday, 4th fiday, etc.)is matched
1826
-								$ndaycounter = 0;
1827
-								// Find matching weekday in this month
1828
-								for ($day = 0, $total = $this->daysInMonth($now, 1); $day < $total; ++$day) {
1829
-									$daynow = $now + $day * 60 * 60 * 24;
1830
-									$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1804
+						// Loop through all months from start to end of occurrence, starting at beginning of first month
1805
+						for ($now = $this->monthStartOf($daystart); $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += $this->daysInMonth($now, $this->recur["everyn"]) * 24 * 60 * 60) {
1806
+							if (isset($this->recur["monthday"]) && ($this->recur['monthday'] != "undefined") && !$this->recur['regen']) { // Day M of every N months
1807
+								$difference = 1;
1808
+								if ($this->daysInMonth($now, $this->recur["everyn"]) < $this->recur["monthday"]) {
1809
+									$difference = $this->recur["monthday"] - $this->daysInMonth($now, $this->recur["everyn"]) + 1;
1810
+								}
1811
+								$daynow = $now + (($this->recur["monthday"] - $difference) * 24 * 60 * 60);
1812
+								// checks weather the next coming day in recurrence pattern is less than or equal to end day of the recurring item
1813
+								if ($daynow <= $dayend) {
1814
+									$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1815
+								}
1816
+							}
1817
+							elseif (isset($this->recur["nday"], $this->recur["weekdays"])) { // Nth [weekday] of every N months
1818
+								// Sanitize input
1819
+								if ($this->recur["weekdays"] == 0) {
1820
+									$this->recur["weekdays"] = 1;
1821
+								}
1831 1822
 
1832
-									if ($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) { // Selected ?
1833
-										++$ndaycounter;
1834
-									}
1835
-									// check the selected pattern is same as asked Nth weekday,If so set the firstday
1836
-									if ($this->recur["nday"] == $ndaycounter) {
1837
-										$firstday = $day;
1823
+								// If nday is not set to the last day in the month
1824
+								if ($this->recur["nday"] < 5) {
1825
+									// keep the track of no. of time correct selection pattern(like 2nd weekday, 4th fiday, etc.)is matched
1826
+									$ndaycounter = 0;
1827
+									// Find matching weekday in this month
1828
+									for ($day = 0, $total = $this->daysInMonth($now, 1); $day < $total; ++$day) {
1829
+										$daynow = $now + $day * 60 * 60 * 24;
1830
+										$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1831
+
1832
+										if ($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) { // Selected ?
1833
+											++$ndaycounter;
1834
+										}
1835
+										// check the selected pattern is same as asked Nth weekday,If so set the firstday
1836
+										if ($this->recur["nday"] == $ndaycounter) {
1837
+											$firstday = $day;
1838 1838
 
1839
-										break;
1839
+											break;
1840
+										}
1840 1841
 									}
1842
+									// $firstday is the day of the month on which the asked pattern of nth weekday matches
1843
+									$daynow = $now + $firstday * 60 * 60 * 24;
1841 1844
 								}
1842
-								// $firstday is the day of the month on which the asked pattern of nth weekday matches
1843
-								$daynow = $now + $firstday * 60 * 60 * 24;
1844
-							}
1845
-							else {
1846
-								// Find last day in the month ($now is the firstday of the month)
1847
-								$NumDaysInMonth = $this->daysInMonth($now, 1);
1848
-								$daynow = $now + (($NumDaysInMonth - 1) * 24 * 60 * 60);
1845
+								else {
1846
+									// Find last day in the month ($now is the firstday of the month)
1847
+									$NumDaysInMonth = $this->daysInMonth($now, 1);
1848
+									$daynow = $now + (($NumDaysInMonth - 1) * 24 * 60 * 60);
1849 1849
 
1850
-								$nowtime = $this->gmtime($daynow);
1851
-								while (($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) == 0) {
1852
-									$daynow -= 86400;
1853 1850
 									$nowtime = $this->gmtime($daynow);
1851
+									while (($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) == 0) {
1852
+										$daynow -= 86400;
1853
+										$nowtime = $this->gmtime($daynow);
1854
+									}
1854 1855
 								}
1855
-							}
1856 1856
 
1857
-							/*
1857
+								/*
1858 1858
 							 * checks weather the next coming day in recurrence pattern is less than or equal to end day of the            * recurring item.Also check weather the coming day in recurrence pattern is greater than or equal to start * of recurring pattern, so that appointment that fall under the recurrence range are only displayed.
1859 1859
 							 */
1860
-							if ($daynow <= $dayend && $daynow >= $daystart) {
1861
-								$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1860
+								if ($daynow <= $dayend && $daynow >= $daystart) {
1861
+									$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1862
+								}
1862 1863
 							}
1863
-						}
1864
-						elseif ($this->recur['regen']) {
1865
-							$next_month_start = $now + ($this->daysInMonth($now, 1) * 24 * 60 * 60);
1866
-							$now = $daystart + ($this->daysInMonth($next_month_start, $this->recur['everyn']) * 24 * 60 * 60);
1864
+							elseif ($this->recur['regen']) {
1865
+								$next_month_start = $now + ($this->daysInMonth($now, 1) * 24 * 60 * 60);
1866
+								$now = $daystart + ($this->daysInMonth($next_month_start, $this->recur['everyn']) * 24 * 60 * 60);
1867 1867
 
1868
-							if ($now <= $dayend) {
1869
-								$this->processOccurrenceItem($items, $daystart, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1868
+								if ($now <= $dayend) {
1869
+									$this->processOccurrenceItem($items, $daystart, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1870
+								}
1870 1871
 							}
1871 1872
 						}
1872
-					}
1873
-
1874
-					break;
1875 1873
 
1876
-				case 13:
1877
-					// Yearly
1878
-					if ($this->recur["everyn"] <= 0) {
1879
-						$this->recur["everyn"] = 12;
1880
-					}
1874
+						break;
1881 1875
 
1882
-					for ($now = $this->yearStartOf($daystart); $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += $this->daysInMonth($now, $this->recur["everyn"]) * 24 * 60 * 60) {
1883
-						if (isset($this->recur["monthday"]) && !$this->recur['regen']) { // same as monthly, but in a specific month
1884
-							// recur["month"] is in minutes since the beginning of the year
1885
-							$month = $this->monthOfYear($this->recur["month"]); // $month is now month of year [0..11]
1886
-							$monthday = $this->recur["monthday"]; // $monthday is day of the month [1..31]
1887
-							$monthstart = $now + $this->daysInMonth($now, $month) * 24 * 60 * 60; // $monthstart is the timestamp of the beginning of the month
1888
-							if ($monthday > $this->daysInMonth($monthstart, 1)) {
1889
-								$monthday = $this->daysInMonth($monthstart, 1);
1890
-							}    // Cap $monthday on month length (eg 28 feb instead of 29 feb)
1891
-							$daynow = $monthstart + ($monthday - 1) * 24 * 60 * 60;
1892
-							$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1876
+					case 13:
1877
+						// Yearly
1878
+						if ($this->recur["everyn"] <= 0) {
1879
+							$this->recur["everyn"] = 12;
1893 1880
 						}
1894
-						elseif (isset($this->recur["nday"], $this->recur["weekdays"])) { // Nth [weekday] in month X of every N years
1895
-							// Go the correct month
1896
-							$monthnow = $now + $this->daysInMonth($now, $this->monthOfYear($this->recur["month"])) * 24 * 60 * 60;
1897 1881
 
1898
-							// Find first matching weekday in this month
1899
-							for ($wday = 0; $wday < 7; ++$wday) {
1900
-								$daynow = $monthnow + $wday * 60 * 60 * 24;
1901
-								$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1882
+						for ($now = $this->yearStartOf($daystart); $now <= $dayend && ($limit == 0 || count($items) < $limit); $now += $this->daysInMonth($now, $this->recur["everyn"]) * 24 * 60 * 60) {
1883
+							if (isset($this->recur["monthday"]) && !$this->recur['regen']) { // same as monthly, but in a specific month
1884
+								// recur["month"] is in minutes since the beginning of the year
1885
+								$month = $this->monthOfYear($this->recur["month"]); // $month is now month of year [0..11]
1886
+								$monthday = $this->recur["monthday"]; // $monthday is day of the month [1..31]
1887
+								$monthstart = $now + $this->daysInMonth($now, $month) * 24 * 60 * 60; // $monthstart is the timestamp of the beginning of the month
1888
+								if ($monthday > $this->daysInMonth($monthstart, 1)) {
1889
+									$monthday = $this->daysInMonth($monthstart, 1);
1890
+								}    // Cap $monthday on month length (eg 28 feb instead of 29 feb)
1891
+								$daynow = $monthstart + ($monthday - 1) * 24 * 60 * 60;
1892
+								$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1893
+							}
1894
+							elseif (isset($this->recur["nday"], $this->recur["weekdays"])) { // Nth [weekday] in month X of every N years
1895
+								// Go the correct month
1896
+								$monthnow = $now + $this->daysInMonth($now, $this->monthOfYear($this->recur["month"])) * 24 * 60 * 60;
1897
+
1898
+								// Find first matching weekday in this month
1899
+								for ($wday = 0; $wday < 7; ++$wday) {
1900
+									$daynow = $monthnow + $wday * 60 * 60 * 24;
1901
+									$nowtime = $this->gmtime($daynow); // Get the weekday of the current day
1902 1902
 
1903
-								if ($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) { // Selected ?
1904
-									$firstday = $wday;
1903
+									if ($this->recur["weekdays"] & (1 << $nowtime["tm_wday"])) { // Selected ?
1904
+										$firstday = $wday;
1905 1905
 
1906
-									break;
1906
+										break;
1907
+									}
1907 1908
 								}
1908
-							}
1909 1909
 
1910
-							// Same as above (monthly)
1911
-							$daynow = $monthnow + ($firstday + ($this->recur["nday"] - 1) * 7) * 60 * 60 * 24;
1910
+								// Same as above (monthly)
1911
+								$daynow = $monthnow + ($firstday + ($this->recur["nday"] - 1) * 7) * 60 * 60 * 24;
1912 1912
 
1913
-							while ($this->monthStartOf($daynow) != $this->monthStartOf($monthnow)) {
1914
-								$daynow -= 7 * 60 * 60 * 24;
1915
-							}
1913
+								while ($this->monthStartOf($daynow) != $this->monthStartOf($monthnow)) {
1914
+									$daynow -= 7 * 60 * 60 * 24;
1915
+								}
1916 1916
 
1917
-							$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1918
-						}
1919
-						elseif ($this->recur['regen']) {
1920
-							$year_starttime = $this->gmtime($now);
1921
-							$is_next_leapyear = $this->isLeapYear($year_starttime['tm_year'] + 1900 + 1);    // +1 next year
1922
-							$now = $daystart + ($is_next_leapyear ? 31622400 /* Leap year in seconds */ : 31536000 /* year in seconds */);
1917
+								$this->processOccurrenceItem($items, $start, $end, $daynow, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1918
+							}
1919
+							elseif ($this->recur['regen']) {
1920
+								$year_starttime = $this->gmtime($now);
1921
+								$is_next_leapyear = $this->isLeapYear($year_starttime['tm_year'] + 1900 + 1);    // +1 next year
1922
+								$now = $daystart + ($is_next_leapyear ? 31622400 /* Leap year in seconds */ : 31536000 /* year in seconds */);
1923 1923
 
1924
-							if ($now <= $dayend) {
1925
-								$this->processOccurrenceItem($items, $daystart, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1924
+								if ($now <= $dayend) {
1925
+									$this->processOccurrenceItem($items, $daystart, $end, $now, $this->recur["startocc"], $this->recur["endocc"], $this->tz, $remindersonly);
1926
+								}
1926 1927
 							}
1927 1928
 						}
1928
-					}
1929 1929
 				}
1930 1930
 				// to get all exception items
1931 1931
 				if (!empty($this->recur['changed_occurrences'])) {
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1918,7 +1918,7 @@
 block discarded – undo
1918 1918
 						}
1919 1919
 						elseif ($this->recur['regen']) {
1920 1920
 							$year_starttime = $this->gmtime($now);
1921
-							$is_next_leapyear = $this->isLeapYear($year_starttime['tm_year'] + 1900 + 1);    // +1 next year
1921
+							$is_next_leapyear = $this->isLeapYear($year_starttime['tm_year'] + 1900 + 1); // +1 next year
1922 1922
 							$now = $daystart + ($is_next_leapyear ? 31622400 /* Leap year in seconds */ : 31536000 /* year in seconds */);
1923 1923
 
1924 1924
 							if ($now <= $dayend) {
Please login to merge, or discard this patch.