Passed
Push — release-2.1 ( 160bdd...a13834 )
by Jon
05:15 queued 10s
created

get_tzid_metazones()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 528
Code Lines 168

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 1
eloc 168
c 2
b 0
f 1
nc 1
nop 0
dl 0
loc 528
rs 8

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * This file provides some functions to simplify working with time zones.
5
 *
6
 * Simple Machines Forum (SMF)
7
 *
8
 * @package SMF
9
 * @author Simple Machines https://www.simplemachines.org
10
 * @copyright 2020 Simple Machines and individual contributors
11
 * @license https://www.simplemachines.org/about/smf/license.php BSD
12
 *
13
 * @version 2.1 RC3
14
 */
15
16
if (!defined('SMF'))
17
	die('No direct access...');
18
19
/**
20
 * Returns an array that instructs SMF how to map specific time zones
21
 * (e.g. "America/Denver") onto the user-friendly "meta-zone" labels that
22
 * most people think of as time zones (e.g. "Mountain Time").
23
 *
24
 * @return array An array relating time zones to "meta-zones"
25
 */
26
function get_tzid_metazones()
27
{
28
	/*
29
		This array lists a series of representative time zones and their
30
		corresponding "meta-zone" labels.
31
32
		The term "representative" here means that a given time zone can
33
		represent others that use exactly the same rules for DST
34
		transitions, UTC offsets, and abbreviations. For example,
35
		Europe/Berlin can be representative for Europe/Rome,
36
		Europe/Paris, etc., because these cities all use exactly the
37
		same time zone rules and values.
38
39
		Meta-zone labels are the user friendly strings shown to the end
40
		user, e.g. "Mountain Standard Time". The values of this array
41
		are keys of strings defined in Timezones.{language}.php, which
42
		in turn are sprintf format strings used to generate the final
43
		label text.
44
45
		Sometimes several representative time zones will map onto the
46
		same meta-zone label. This usually happens when there are
47
		different rules for Daylight Saving time in locations that are
48
		otherwise the same. For example, both America/Denver and
49
		America/Phoenix map to North_America_Mountain, but the ultimate
50
		output will be 'Mountain Time (MST/MDT)' for America/Denver vs.
51
		'Mountain Standard Time (MST)' for America/Phoenix.
52
	 */
53
	$tzid_metazones =  array(
54
		// Africa_Central (no DST)
55
		'Africa/Maputo' => 'Africa_Central',
56
57
		// Africa_East (no DST)
58
		'Africa/Nairobi' => 'Africa_East',
59
60
		// Africa_Morocco (uses DST)
61
		'Africa/Casablanca' => 'Africa_Morocco',
62
63
		// Africa_South (no DST)
64
		'Africa/Johannesburg' => 'Africa_South',
65
66
		// Africa_West (no DST)
67
		'Africa/Lagos' => 'Africa_West',
68
69
		// Antarctica_Casey (no DST)
70
		'Antarctica/Casey' => 'Antarctica_Casey',
71
72
		// Antarctica_Davis (no DST)
73
		'Antarctica/Davis' => 'Antarctica_Davis',
74
75
		// Antarctica_DumontDUrville (no DST)
76
		'Antarctica/DumontDUrville' => 'Antarctica_DumontDUrville',
77
78
		// Antarctica_Macquarie (no DST)
79
		'Antarctica/Macquarie' => 'Antarctica_Macquarie',
80
81
		// Antarctica_Mawson (no DST)
82
		'Antarctica/Mawson' => 'Antarctica_Mawson',
83
84
		// Antarctica_McMurdo (uses DST)
85
		'Antarctica/McMurdo' => 'Antarctica_McMurdo',
86
87
		// Antarctica_Palmer (no DST)
88
		'Antarctica/Palmer' => 'Antarctica_Palmer',
89
90
		// Antarctica_Rothera (no DST)
91
		'Antarctica/Rothera' => 'Antarctica_Rothera',
92
93
		// Antarctica_Syowa (no DST)
94
		'Antarctica/Syowa' => 'Antarctica_Syowa',
95
96
		// Antarctica_Troll (uses DST)
97
		'Antarctica/Troll' => 'Antarctica_Troll',
98
99
		// Antarctica_Vostok (no DST)
100
		'Antarctica/Vostok' => 'Antarctica_Vostok',
101
102
		// Asia_Afghanistan (no DST)
103
		'Asia/Kabul' => 'Asia_Afghanistan',
104
105
		// Asia_Arabian (no DST)
106
		'Asia/Riyadh' => 'Asia_Arabian',
107
108
		// Asia_Armenia (no DST)
109
		'Asia/Yerevan' => 'Asia_Armenia',
110
111
		// Asia_Azerbaijan (no DST)
112
		'Asia/Baku' => 'Asia_Azerbaijan',
113
114
		// Asia_Bangladesh (no DST)
115
		'Asia/Dhaka' => 'Asia_Bangladesh',
116
117
		// Asia_Bhutan (no DST)
118
		'Asia/Thimphu' => 'Asia_Bhutan',
119
120
		// Asia_Brunei (no DST)
121
		'Asia/Brunei' => 'Asia_Brunei',
122
123
		// Asia_China (no DST)
124
		'Asia/Shanghai' => 'Asia_China',
125
126
		// Asia_Damascus (uses DST)
127
		'Asia/Damascus' => 'Asia_Damascus',
128
129
		// Asia_East_Timor (no DST)
130
		'Asia/Dili' => 'Asia_East_Timor',
131
132
		// Asia_Georgia (no DST)
133
		'Asia/Tbilisi' => 'Asia_Georgia',
134
135
		// Asia_Gulf (no DST)
136
		'Asia/Dubai' => 'Asia_Gulf',
137
138
		// Asia_Hong_Kong (no DST)
139
		'Asia/Hong_Kong' => 'Asia_Hong_Kong',
140
141
		// Asia_India (no DST)
142
		'Asia/Kolkata' => 'Asia_India',
143
144
		// Asia_Indonesia_Central (no DST)
145
		'Asia/Makassar' => 'Asia_Indonesia_Central',
146
147
		// Asia_Indonesia_Eastern (no DST)
148
		'Asia/Jayapura' => 'Asia_Indonesia_Eastern',
149
150
		// Asia_Indonesia_Western (no DST)
151
		'Asia/Jakarta' => 'Asia_Indonesia_Western',
152
153
		// Asia_Iran (uses DST)
154
		'Asia/Tehran' => 'Asia_Iran',
155
156
		// Asia_Irkutsk (no DST)
157
		'Asia/Irkutsk' => 'Asia_Irkutsk',
158
159
		// Asia_Israel (uses DST)
160
		'Asia/Jerusalem' => 'Asia_Israel',
161
162
		// Asia_Japan (no DST)
163
		'Asia/Tokyo' => 'Asia_Japan',
164
165
		// Asia_Jordan (uses DST)
166
		'Asia/Amman' => 'Asia_Jordan',
167
168
		// Asia_Kamchatka (no DST)
169
		'Asia/Kamchatka' => 'Asia_Kamchatka',
170
171
		// Asia_Kazakhstan_Eastern (no DST)
172
		'Asia/Almaty' => 'Asia_Kazakhstan_Eastern',
173
174
		// Asia_Kazakhstan_Western (no DST)
175
		'Asia/Aqtau' => 'Asia_Kazakhstan_Western',
176
177
		// Asia_Korea (no DST)
178
		'Asia/Seoul' => 'Asia_Korea',
179
180
		// Asia_Krasnoyarsk (no DST)
181
		'Asia/Krasnoyarsk' => 'Asia_Krasnoyarsk',
182
183
		// Asia_Kyrgystan (no DST)
184
		'Asia/Bishkek' => 'Asia_Kyrgystan',
185
186
		// Asia_Libya (uses DST)
187
		'Asia/Beirut' => 'Asia_Libya',
188
189
		// Asia_Magadan (no DST)
190
		'Asia/Magadan' => 'Asia_Magadan',
191
192
		// Asia_Malaysia (no DST)
193
		'Asia/Kuala_Lumpur' => 'Asia_Malaysia',
194
195
		// Asia_Mongolia_Western (no DST)
196
		'Asia/Hovd' => 'Asia_Mongolia_Western',
197
198
		// Asia_Mongolia_EAstern (no DST)
199
		'Asia/Ulaanbaatar' => 'Asia_Mongolia_Eastern',
200
201
		// Asia_Myanmar (no DST)
202
		'Asia/Yangon' => 'Asia_Myanmar',
203
204
		// Asia_Nepal (no DST)
205
		'Asia/Kathmandu' => 'Asia_Nepal',
206
207
		// Asia_Omsk (no DST)
208
		'Asia/Omsk' => 'Asia_Omsk',
209
210
		// Asia_Pakistan (no DST)
211
		'Asia/Karachi' => 'Asia_Pakistan',
212
213
		// Asia_Palestine (uses DST)
214
		'Asia/Hebron' => 'Asia_Palestine',
215
216
		// Asia_Philippines (no DST)
217
		'Asia/Manila' => 'Asia_Philippines',
218
219
		// Asia_Singapore (no DST)
220
		'Asia/Singapore' => 'Asia_Singapore',
221
222
		// Asia_Southeast (no DST)
223
		'Asia/Bangkok' => 'Asia_Southeast',
224
225
		// Asia_Taiwan (no DST)
226
		'Asia/Taipei' => 'Asia_Taiwan',
227
228
		// Asia_Tajikistan (no DST)
229
		'Asia/Dushanbe' => 'Asia_Tajikistan',
230
231
		// Asia_Turkey (no DST)
232
		'Europe/Istanbul' => 'Asia_Turkey',
233
234
		// Asia_Turkmenistan (no DST)
235
		'Asia/Ashgabat' => 'Asia_Turkmenistan',
236
237
		// Asia_Uzbekistan (no DST)
238
		'Asia/Tashkent' => 'Asia_Uzbekistan',
239
240
		// Asia_Vladivostok (no DST)
241
		'Asia/Vladivostok' => 'Asia_Vladivostok',
242
243
		// Asia_Yakutsk (no DST)
244
		'Asia/Yakutsk' => 'Asia_Yakutsk',
245
246
		// Asia_Yekaterinburg (no DST)
247
		'Asia/Yekaterinburg' => 'Asia_Yekaterinburg',
248
249
		// Atlantic_Azores (uses DST)
250
		'Atlantic/Azores' => 'Atlantic_Azores',
251
252
		// Atlantic_Cape_Verde (no DST)
253
		'Atlantic/Cape_Verde' => 'Atlantic_Cape_Verde',
254
255
		// Atlantic_Falkland (no DST)
256
		'Atlantic/Stanley' => 'Atlantic_Falkland',
257
258
		// Atlantic_South_Georgia (no DST)
259
		'Atlantic/South_Georgia' => 'Atlantic_South_Georgia',
260
261
		// Australia_Central (uses DST)
262
		'Australia/Adelaide' => 'Australia_Central',
263
264
		// Australia_Central (no DST)
265
		'Australia/Darwin' => 'Australia_Central',
266
267
		// Australia_CentralWestern (no DST)
268
		'Australia/Eucla' => 'Australia_CentralWestern',
269
270
		// Australia_Eastern (uses DST)
271
		'Australia/Melbourne' => 'Australia_Eastern',
272
273
		// Australia_Eastern (no DST)
274
		'Australia/Brisbane' => 'Australia_Eastern',
275
276
		// Australia_Lord_Howe (uses DST)
277
		'Australia/Lord_Howe' => 'Australia_Lord_Howe',
278
279
		// Australia_Western (no DST)
280
		'Australia/Perth' => 'Australia_Western',
281
282
		// Europe_Central (uses DST)
283
		'Europe/Berlin' => 'Europe_Central',
284
285
		// Europe_Central (no DST)
286
		'Africa/Algiers' => 'Europe_Central',
287
288
		// Europe_Eastern (uses DST)
289
		'Europe/Helsinki' => 'Europe_Eastern',
290
291
		// Europe_Eastern (no DST)
292
		'Europe/Kaliningrad' => 'Europe_Eastern',
293
294
		// Europe_Eire (uses DST)
295
		'Europe/Dublin' => 'Europe_Eire',
296
297
		// Europe_UK (uses DST)
298
		'Europe/London' => 'Europe_UK',
299
300
		// Europe_Minsk (no DST)
301
		'Europe/Minsk' => 'Europe_Minsk',
302
303
		// Europe_Moldova (uses DST)
304
		'Europe/Chisinau' => 'Europe_Moldova',
305
306
		// Europe_Moscow (no DST)
307
		'Europe/Moscow' => 'Europe_Moscow',
308
309
		// Europe_Samara (no DST)
310
		'Europe/Samara' => 'Europe_Samara',
311
312
		// Europe_Volgograd (no DST)
313
		'Europe/Volgograd' => 'Europe_Volgograd',
314
315
		// Europe_Western (uses DST)
316
		'Europe/Lisbon' => 'Europe_Western',
317
318
		// GMT (no DST)
319
		'Africa/Abidjan' => 'GMT',
320
321
		// Indian_Chagos (no DST)
322
		'Indian/Chagos' => 'Indian_Chagos',
323
324
		// Indian_Christmas (no DST)
325
		'Indian/Christmas' => 'Indian_Christmas',
326
327
		// Indian_Cocos (no DST)
328
		'Indian/Cocos' => 'Indian_Cocos',
329
330
		// Indian_Kerguelen (no DST)
331
		'Indian/Kerguelen' => 'Indian_Kerguelen',
332
333
		// Indian_Maldives (no DST)
334
		'Indian/Maldives' => 'Indian_Maldives',
335
336
		// Indian_Mauritius (no DST)
337
		'Indian/Mauritius' => 'Indian_Mauritius',
338
339
		// Indian_Reunion (no DST)
340
		'Indian/Reunion' => 'Indian_Reunion',
341
342
		// Indian_Seychelles (no DST)
343
		'Indian/Mahe' => 'Indian_Seychelles',
344
345
		// North_America_Alaska (uses DST)
346
		'America/Anchorage' => 'North_America_Alaska',
347
348
		// North_America_Atlantic (uses DST)
349
		'America/Halifax' => 'North_America_Atlantic',
350
351
		// North_America_Atlantic (no DST)
352
		'America/Port_of_Spain' => 'North_America_Atlantic',
353
354
		// North_America_Central (uses DST)
355
		'America/Chicago' => 'North_America_Central',
356
357
		// North_America_Central (no DST)
358
		'America/Belize' => 'North_America_Central',
359
360
		// North_America_Mexico_Central (uses DST)
361
		'America/Mexico_City' => 'North_America_Mexico_Central',
362
363
		// North_America_Cuba (uses DST)
364
		'America/Havana' => 'North_America_Cuba',
365
366
		// North_America_Eastern (uses DST)
367
		'America/New_York' => 'North_America_Eastern',
368
369
		// North_America_Eastern (no DST)
370
		'America/Jamaica' => 'North_America_Eastern',
371
372
		// North_America_Greenland_Eastern (uses DST)
373
		'America/Scoresbysund' => 'North_America_Greenland_Eastern',
374
375
		// North_America_Greenland_Western (uses DST)
376
		'America/Godthab' => 'North_America_Greenland_Western',
377
378
		// North_America_Hawaii_Aleutian (uses DST)
379
		'America/Adak' => 'North_America_Hawaii_Aleutian',
380
381
		// North_America_Mountain (uses DST)
382
		'America/Denver' => 'North_America_Mountain',
383
384
		// North_America_Mountain (no DST)
385
		'America/Phoenix' => 'North_America_Mountain',
386
387
		// North_America_Mexico_Pacific (uses DST)
388
		'America/Chihuahua' => 'North_America_Mexico_Pacific',
389
390
		// North_America_Newfoundland (uses DST)
391
		'America/St_Johns' => 'North_America_Newfoundland',
392
393
		// North_America_Pacific (uses DST)
394
		'America/Los_Angeles' => 'North_America_Pacific',
395
396
		// North_America_St_Pierre_Miquelon (uses DST)
397
		'America/Miquelon' => 'North_America_St_Pierre_Miquelon',
398
399
		// Pacific_Bougainville (no DST)
400
		'Pacific/Bougainville' => 'Pacific_Bougainville',
401
402
		// Pacific_Chamorro (no DST)
403
		'Pacific/Guam' => 'Pacific_Chamorro',
404
405
		// Pacific_Chatham (uses DST)
406
		'Pacific/Chatham' => 'Pacific_Chatham',
407
408
		// Pacific_Chuuk (no DST)
409
		'Pacific/Chuuk' => 'Pacific_Chuuk',
410
411
		// Pacific_Cook (no DST)
412
		'Pacific/Rarotonga' => 'Pacific_Cook',
413
414
		// Pacific_Easter (uses DST)
415
		'Pacific/Easter' => 'Pacific_Easter',
416
417
		// Pacific_Fiji (uses DST)
418
		'Pacific/Fiji' => 'Pacific_Fiji',
419
420
		// Pacific_Galapagos (no DST)
421
		'Pacific/Galapagos' => 'Pacific_Galapagos',
422
423
		// Pacific_Gambier (no DST)
424
		'Pacific/Gambier' => 'Pacific_Gambier',
425
426
		// Pacific_Gilbert (no DST)
427
		'Pacific/Tarawa' => 'Pacific_Gilbert',
428
429
		// Pacific_Hawaii (no DST)
430
		'Pacific/Honolulu' => 'Pacific_Hawaii',
431
432
		// Pacific_Line (no DST)
433
		'Pacific/Kiritimati' => 'Pacific_Line',
434
435
		// Pacific_Marquesas (no DST)
436
		'Pacific/Marquesas' => 'Pacific_Marquesas',
437
438
		// Pacific_Marshall (no DST)
439
		'Pacific/Kwajalein' => 'Pacific_Marshall',
440
441
		// Pacific_Nauru (no DST)
442
		'Pacific/Nauru' => 'Pacific_Nauru',
443
444
		// Pacific_New_Caledonia (no DST)
445
		'Pacific/Noumea' => 'Pacific_New_Caledonia',
446
447
		// Pacific_Apia (uses DST)
448
		'Pacific/Apia' => 'Pacific_Apia',
449
450
		// Pacific_New_Zealand (uses DST)
451
		'Pacific/Auckland' => 'Pacific_New_Zealand',
452
453
		// Pacific_Niue (no DST)
454
		'Pacific/Niue' => 'Pacific_Niue',
455
456
		// Pacific_Norfolk (no DST)
457
		'Pacific/Norfolk' => 'Pacific_Norfolk',
458
459
		// Pacific_Palau (no DST)
460
		'Pacific/Palau' => 'Pacific_Palau',
461
462
		// Pacific_Papua_New_Guinea (no DST)
463
		'Pacific/Port_Moresby' => 'Pacific_Papua_New_Guinea',
464
465
		// Pacific_Phoenix_Islands (no DST)
466
		'Pacific/Enderbury' => 'Pacific_Phoenix_Islands',
467
468
		// Pacific_Pitcairn (no DST)
469
		'Pacific/Pitcairn' => 'Pacific_Pitcairn',
470
471
		// Pacific_Pohnpei (no DST)
472
		'Pacific/Pohnpei' => 'Pacific_Pohnpei',
473
474
		// Pacific_American_Samoa (no DST)
475
		'Pacific/Pago_Pago' => 'Pacific_Samoa',
476
477
		// Pacific_Solomon (no DST)
478
		'Pacific/Guadalcanal' => 'Pacific_Solomon',
479
480
		// Pacific_Tahiti (no DST)
481
		'Pacific/Tahiti' => 'Pacific_Tahiti',
482
483
		// Pacific_Tokelau (no DST)
484
		'Pacific/Fakaofo' => 'Pacific_Tokelau',
485
486
		// Pacific_Tonga (no DST)
487
		'Pacific/Tongatapu' => 'Pacific_Tonga',
488
489
		// Pacific_Tuvalu (no DST)
490
		'Pacific/Funafuti' => 'Pacific_Tuvalu',
491
492
		// Pacific_Vanuatu (no DST)
493
		'Pacific/Efate' => 'Pacific_Vanuatu',
494
495
		// Pacific_Wake (no DST)
496
		'Pacific/Wake' => 'Pacific_Wake',
497
498
		// Pacific_Wallis (no DST)
499
		'Pacific/Wallis' => 'Pacific_Wallis',
500
501
		// South_America_Acre (no DST)
502
		'America/Rio_Branco' => 'South_America_Acre',
503
504
		// South_America_Amazon (no DST)
505
		'America/Manaus' => 'South_America_Amazon',
506
507
		// South_America_Argentina (no DST)
508
		'America/Argentina/Buenos_Aires' => 'South_America_Argentina',
509
510
		// South_America_Bolivia (no DST)
511
		'America/La_Paz' => 'South_America_Bolivia',
512
513
		// South_America_Brasilia (no DST)
514
		'America/Sao_Paulo' => 'South_America_Brasilia',
515
516
		// South_America_Chile (uses DST)
517
		'America/Santiago' => 'South_America_Chile',
518
519
		// South_America_Chile (no DST)
520
		'America/Punta_Arenas' => 'South_America_Chile',
521
522
		// South_America_Colombia (no DST)
523
		'America/Bogota' => 'South_America_Colombia',
524
525
		// South_America_Ecuador (no DST)
526
		'America/Guayaquil' => 'South_America_Ecuador',
527
528
		// South_America_French_Guiana (no DST)
529
		'America/Cayenne' => 'South_America_French_Guiana',
530
531
		// South_America_Guyana (no DST)
532
		'America/Guyana' => 'South_America_Guyana',
533
534
		// South_America_Noronha (no DST)
535
		'America/Noronha' => 'South_America_Noronha',
536
537
		// South_America_Paraguay (uses DST)
538
		'America/Asuncion' => 'South_America_Paraguay',
539
540
		// South_America_Peru (no DST)
541
		'America/Lima' => 'South_America_Peru',
542
543
		// South_America_Suriname (no DST)
544
		'America/Paramaribo' => 'South_America_Suriname',
545
546
		// South_America_Uruguay (no DST)
547
		'America/Montevideo' => 'South_America_Uruguay',
548
549
		// South_America_Venezuela (no DST)
550
		'America/Caracas' => 'South_America_Venezuela',
551
	);
552
553
	return $tzid_metazones;
554
}
555
556
/**
557
 * Returns an array of all the time zones in a country, ranked according
558
 * to population and/or politically significance.
559
 *
560
 * @param string $country_code The two-character ISO-3166 code for a country.
561
 * @return array An array relating time zones to "meta-zones"
562
 */
563
function get_sorted_tzids_for_country($country_code)
564
{
565
	/*
566
		This array lists all the individual time zones in each country,
567
		sorted by population (as reported in statistics available on
568
		Wikipedia in November 2020). Sorting this way enables us to
569
		consistently select the most appropriate individual time zone to
570
		represent all others that share its DST transition rules and values.
571
		For example, this ensures that New York will be preferred over
572
		random small towns in Indiana.
573
574
		If future versions of the time zone database add new time zone
575
		identifiers beyond those included here, they should be added to this
576
		list appropriate. However, SMF will gracefully handle unexpected new
577
		time zones, so nothing will break in the meantime.
578
	 */
579
	$sorted_tzids = array(
580
		// '??' means international.
581
		'??' => array(
582
			'UTC',
583
		),
584
		'AD' => array(
585
			'Europe/Andorra',
586
		),
587
		'AE' => array(
588
			'Asia/Dubai',
589
		),
590
		'AF' => array(
591
			'Asia/Kabul',
592
		),
593
		'AG' => array(
594
			'America/Antigua',
595
		),
596
		'AI' => array(
597
			'America/Anguilla',
598
		),
599
		'AL' => array(
600
			'Europe/Tirane',
601
		),
602
		'AM' => array(
603
			'Asia/Yerevan',
604
		),
605
		'AO' => array(
606
			'Africa/Luanda',
607
		),
608
		'AQ' => array(
609
			// Sorted based on summer population.
610
			'Antarctica/McMurdo',
611
			'Antarctica/Casey',
612
			'Antarctica/Davis',
613
			'Antarctica/Mawson',
614
			'Antarctica/Rothera',
615
			'Antarctica/Syowa',
616
			'Antarctica/Palmer',
617
			'Antarctica/Troll',
618
			'Antarctica/DumontDUrville',
619
			'Antarctica/Vostok',
620
		),
621
		'AR' => array(
622
			'America/Argentina/Buenos_Aires',
623
			'America/Argentina/Cordoba',
624
			'America/Argentina/Tucuman',
625
			'America/Argentina/Salta',
626
			'America/Argentina/Jujuy',
627
			'America/Argentina/La_Rioja',
628
			'America/Argentina/San_Luis',
629
			'America/Argentina/Catamarca',
630
			'America/Argentina/Mendoza',
631
			'America/Argentina/San_Juan',
632
			'America/Argentina/Rio_Gallegos',
633
			'America/Argentina/Ushuaia',
634
		),
635
		'AS' => array(
636
			'Pacific/Pago_Pago',
637
		),
638
		'AT' => array(
639
			'Europe/Vienna',
640
		),
641
		'AU' => array(
642
			'Australia/Sydney',
643
			'Australia/Melbourne',
644
			'Australia/Brisbane',
645
			'Australia/Perth',
646
			'Australia/Adelaide',
647
			'Australia/Hobart',
648
			'Australia/Darwin',
649
			'Australia/Broken_Hill',
650
			'Australia/Currie',
651
			'Australia/Lord_Howe',
652
			'Australia/Eucla',
653
			'Australia/Lindeman',
654
			'Antarctica/Macquarie',
655
		),
656
		'AW' => array(
657
			'America/Aruba',
658
		),
659
		'AX' => array(
660
			'Europe/Mariehamn',
661
		),
662
		'AZ' => array(
663
			'Asia/Baku',
664
		),
665
		'BA' => array(
666
			'Europe/Sarajevo',
667
		),
668
		'BB' => array(
669
			'America/Barbados',
670
		),
671
		'BD' => array(
672
			'Asia/Dhaka',
673
		),
674
		'BE' => array(
675
			'Europe/Brussels',
676
		),
677
		'BF' => array(
678
			'Africa/Ouagadougou',
679
		),
680
		'BG' => array(
681
			'Europe/Sofia',
682
		),
683
		'BH' => array(
684
			'Asia/Bahrain',
685
		),
686
		'BI' => array(
687
			'Africa/Bujumbura',
688
		),
689
		'BJ' => array(
690
			'Africa/Porto-Novo',
691
		),
692
		'BL' => array(
693
			'America/St_Barthelemy',
694
		),
695
		'BM' => array(
696
			'Atlantic/Bermuda',
697
		),
698
		'BN' => array(
699
			'Asia/Brunei',
700
		),
701
		'BO' => array(
702
			'America/La_Paz',
703
		),
704
		'BQ' => array(
705
			'America/Kralendijk',
706
		),
707
		'BR' => array(
708
			'America/Sao_Paulo',
709
			'America/Bahia',
710
			'America/Fortaleza',
711
			'America/Manaus',
712
			'America/Recife',
713
			'America/Belem',
714
			'America/Maceio',
715
			'America/Campo_Grande',
716
			'America/Cuiaba',
717
			'America/Porto_Velho',
718
			'America/Rio_Branco',
719
			'America/Boa_Vista',
720
			'America/Santarem',
721
			'America/Araguaina',
722
			'America/Eirunepe',
723
			'America/Noronha',
724
		),
725
		'BS' => array(
726
			'America/Nassau',
727
		),
728
		'BT' => array(
729
			'Asia/Thimphu',
730
		),
731
		'BW' => array(
732
			'Africa/Gaborone',
733
		),
734
		'BY' => array(
735
			'Europe/Minsk',
736
		),
737
		'BZ' => array(
738
			'America/Belize',
739
		),
740
		'CA' => array(
741
			'America/Toronto',
742
			'America/Vancouver',
743
			'America/Edmonton',
744
			'America/Winnipeg',
745
			'America/Halifax',
746
			'America/Regina',
747
			'America/St_Johns',
748
			'America/Moncton',
749
			'America/Thunder_Bay',
750
			'America/Whitehorse',
751
			'America/Glace_Bay',
752
			'America/Yellowknife',
753
			'America/Swift_Current',
754
			'America/Dawson_Creek',
755
			'America/Goose_Bay',
756
			'America/Iqaluit',
757
			'America/Creston',
758
			'America/Fort_Nelson',
759
			'America/Inuvik',
760
			'America/Atikokan',
761
			'America/Rankin_Inlet',
762
			'America/Nipigon',
763
			'America/Cambridge_Bay',
764
			'America/Pangnirtung',
765
			'America/Dawson',
766
			'America/Blanc-Sablon',
767
			'America/Rainy_River',
768
			'America/Resolute',
769
		),
770
		'CC' => array(
771
			'Indian/Cocos',
772
		),
773
		'CD' => array(
774
			'Africa/Kinshasa',
775
776
			'Africa/Lubumbashi',
777
		),
778
		'CF' => array(
779
			'Africa/Bangui',
780
		),
781
		'CG' => array(
782
			'Africa/Brazzaville',
783
		),
784
		'CH' => array(
785
			'Europe/Zurich',
786
		),
787
		'CI' => array(
788
			'Africa/Abidjan',
789
		),
790
		'CK' => array(
791
			'Pacific/Rarotonga',
792
		),
793
		'CL' => array(
794
			'America/Santiago',
795
			'America/Punta_Arenas',
796
			'Pacific/Easter',
797
		),
798
		'CM' => array(
799
			'Africa/Douala',
800
		),
801
		'CN' => array(
802
			'Asia/Shanghai',
803
804
			'Asia/Urumqi',
805
		),
806
		'CO' => array(
807
			'America/Bogota',
808
		),
809
		'CR' => array(
810
			'America/Costa_Rica',
811
		),
812
		'CU' => array(
813
			'America/Havana',
814
		),
815
		'CV' => array(
816
			'Atlantic/Cape_Verde',
817
		),
818
		'CW' => array(
819
			'America/Curacao',
820
		),
821
		'CX' => array(
822
			'Indian/Christmas',
823
		),
824
		'CY' => array(
825
			'Asia/Nicosia',
826
			'Asia/Famagusta',
827
		),
828
		'CZ' => array(
829
			'Europe/Prague',
830
		),
831
		'DE' => array(
832
			'Europe/Berlin',
833
			'Europe/Busingen',
834
		),
835
		'DJ' => array(
836
			'Africa/Djibouti',
837
		),
838
		'DK' => array(
839
			'Europe/Copenhagen',
840
		),
841
		'DM' => array(
842
			'America/Dominica',
843
		),
844
		'DO' => array(
845
			'America/Santo_Domingo',
846
		),
847
		'DZ' => array(
848
			'Africa/Algiers',
849
		),
850
		'EC' => array(
851
			'America/Guayaquil',
852
			'Pacific/Galapagos',
853
		),
854
		'EE' => array(
855
			'Europe/Tallinn',
856
		),
857
		'EG' => array(
858
			'Africa/Cairo',
859
		),
860
		'EH' => array(
861
			'Africa/El_Aaiun',
862
		),
863
		'ER' => array(
864
			'Africa/Asmara',
865
		),
866
		'ES' => array(
867
			'Europe/Madrid',
868
			'Atlantic/Canary',
869
			'Africa/Ceuta',
870
		),
871
		'ET' => array(
872
			'Africa/Addis_Ababa',
873
		),
874
		'FI' => array(
875
			'Europe/Helsinki',
876
		),
877
		'FJ' => array(
878
			'Pacific/Fiji',
879
		),
880
		'FK' => array(
881
			'Atlantic/Stanley',
882
		),
883
		'FM' => array(
884
			'Pacific/Chuuk',
885
			'Pacific/Kosrae',
886
			'Pacific/Pohnpei',
887
		),
888
		'FO' => array(
889
			'Atlantic/Faroe',
890
		),
891
		'FR' => array(
892
			'Europe/Paris',
893
		),
894
		'GA' => array(
895
			'Africa/Libreville',
896
		),
897
		'GB' => array(
898
			'Europe/London',
899
		),
900
		'GD' => array(
901
			'America/Grenada',
902
		),
903
		'GE' => array(
904
			'Asia/Tbilisi',
905
		),
906
		'GF' => array(
907
			'America/Cayenne',
908
		),
909
		'GG' => array(
910
			'Europe/Guernsey',
911
		),
912
		'GH' => array(
913
			'Africa/Accra',
914
		),
915
		'GI' => array(
916
			'Europe/Gibraltar',
917
		),
918
		'GL' => array(
919
			'America/Godthab',
920
			'America/Thule',
921
			'America/Scoresbysund',
922
			'America/Danmarkshavn',
923
		),
924
		'GM' => array(
925
			'Africa/Banjul',
926
		),
927
		'GN' => array(
928
			'Africa/Conakry',
929
		),
930
		'GP' => array(
931
			'America/Guadeloupe',
932
		),
933
		'GQ' => array(
934
			'Africa/Malabo',
935
		),
936
		'GR' => array(
937
			'Europe/Athens',
938
		),
939
		'GS' => array(
940
			'Atlantic/South_Georgia',
941
		),
942
		'GT' => array(
943
			'America/Guatemala',
944
		),
945
		'GU' => array(
946
			'Pacific/Guam',
947
		),
948
		'GW' => array(
949
			'Africa/Bissau',
950
		),
951
		'GY' => array(
952
			'America/Guyana',
953
		),
954
		'HK' => array(
955
			'Asia/Hong_Kong',
956
		),
957
		'HN' => array(
958
			'America/Tegucigalpa',
959
		),
960
		'HR' => array(
961
			'Europe/Zagreb',
962
		),
963
		'HT' => array(
964
			'America/Port-au-Prince',
965
		),
966
		'HU' => array(
967
			'Europe/Budapest',
968
		),
969
		'ID' => array(
970
			'Asia/Jakarta',
971
			'Asia/Makassar',
972
			'Asia/Pontianak',
973
			'Asia/Jayapura',
974
		),
975
		'IE' => array(
976
			'Europe/Dublin',
977
		),
978
		'IL' => array(
979
			'Asia/Jerusalem',
980
		),
981
		'IM' => array(
982
			'Europe/Isle_of_Man',
983
		),
984
		'IN' => array(
985
			'Asia/Kolkata',
986
		),
987
		'IO' => array(
988
			'Indian/Chagos',
989
		),
990
		'IQ' => array(
991
			'Asia/Baghdad',
992
		),
993
		'IR' => array(
994
			'Asia/Tehran',
995
		),
996
		'IS' => array(
997
			'Atlantic/Reykjavik',
998
		),
999
		'IT' => array(
1000
			'Europe/Rome',
1001
		),
1002
		'JE' => array(
1003
			'Europe/Jersey',
1004
		),
1005
		'JM' => array(
1006
			'America/Jamaica',
1007
		),
1008
		'JO' => array(
1009
			'Asia/Amman',
1010
		),
1011
		'JP' => array(
1012
			'Asia/Tokyo',
1013
		),
1014
		'KE' => array(
1015
			'Africa/Nairobi',
1016
		),
1017
		'KG' => array(
1018
			'Asia/Bishkek',
1019
		),
1020
		'KH' => array(
1021
			'Asia/Phnom_Penh',
1022
		),
1023
		'KI' => array(
1024
			'Pacific/Tarawa',
1025
			'Pacific/Kiritimati',
1026
			'Pacific/Enderbury',
1027
		),
1028
		'KM' => array(
1029
			'Indian/Comoro',
1030
		),
1031
		'KN' => array(
1032
			'America/St_Kitts',
1033
		),
1034
		'KP' => array(
1035
			'Asia/Pyongyang',
1036
		),
1037
		'KR' => array(
1038
			'Asia/Seoul',
1039
		),
1040
		'KW' => array(
1041
			'Asia/Kuwait',
1042
		),
1043
		'KY' => array(
1044
			'America/Cayman',
1045
		),
1046
		'KZ' => array(
1047
			'Asia/Almaty',
1048
			'Asia/Aqtobe',
1049
			'Asia/Atyrau',
1050
			'Asia/Qostanay',
1051
			'Asia/Qyzylorda',
1052
			'Asia/Aqtau',
1053
			'Asia/Oral',
1054
		),
1055
		'LA' => array(
1056
			'Asia/Vientiane',
1057
		),
1058
		'LB' => array(
1059
			'Asia/Beirut',
1060
		),
1061
		'LC' => array(
1062
			'America/St_Lucia',
1063
		),
1064
		'LI' => array(
1065
			'Europe/Vaduz',
1066
		),
1067
		'LK' => array(
1068
			'Asia/Colombo',
1069
		),
1070
		'LR' => array(
1071
			'Africa/Monrovia',
1072
		),
1073
		'LS' => array(
1074
			'Africa/Maseru',
1075
		),
1076
		'LT' => array(
1077
			'Europe/Vilnius',
1078
		),
1079
		'LU' => array(
1080
			'Europe/Luxembourg',
1081
		),
1082
		'LV' => array(
1083
			'Europe/Riga',
1084
		),
1085
		'LY' => array(
1086
			'Africa/Tripoli',
1087
		),
1088
		'MA' => array(
1089
			'Africa/Casablanca',
1090
		),
1091
		'MC' => array(
1092
			'Europe/Monaco',
1093
		),
1094
		'MD' => array(
1095
			'Europe/Chisinau',
1096
		),
1097
		'ME' => array(
1098
			'Europe/Podgorica',
1099
		),
1100
		'MF' => array(
1101
			'America/Marigot',
1102
		),
1103
		'MG' => array(
1104
			'Indian/Antananarivo',
1105
		),
1106
		'MH' => array(
1107
			'Pacific/Majuro',
1108
			'Pacific/Kwajalein',
1109
		),
1110
		'MK' => array(
1111
			'Europe/Skopje',
1112
		),
1113
		'ML' => array(
1114
			'Africa/Bamako',
1115
		),
1116
		'MM' => array(
1117
			'Asia/Yangon',
1118
		),
1119
		'MN' => array(
1120
			'Asia/Ulaanbaatar',
1121
			'Asia/Choibalsan',
1122
			'Asia/Hovd',
1123
		),
1124
		'MO' => array(
1125
			'Asia/Macau',
1126
		),
1127
		'MP' => array(
1128
			'Pacific/Saipan',
1129
		),
1130
		'MQ' => array(
1131
			'America/Martinique',
1132
		),
1133
		'MR' => array(
1134
			'Africa/Nouakchott',
1135
		),
1136
		'MS' => array(
1137
			'America/Montserrat',
1138
		),
1139
		'MT' => array(
1140
			'Europe/Malta',
1141
		),
1142
		'MU' => array(
1143
			'Indian/Mauritius',
1144
		),
1145
		'MV' => array(
1146
			'Indian/Maldives',
1147
		),
1148
		'MW' => array(
1149
			'Africa/Blantyre',
1150
		),
1151
		'MX' => array(
1152
			'America/Mexico_City',
1153
			'America/Tijuana',
1154
			'America/Monterrey',
1155
			'America/Chihuahua',
1156
			'America/Merida',
1157
			'America/Hermosillo',
1158
			'America/Cancun',
1159
			'America/Matamoros',
1160
			'America/Mazatlan',
1161
			'America/Bahia_Banderas',
1162
			'America/Ojinaga',
1163
		),
1164
		'MY' => array(
1165
			'Asia/Kuala_Lumpur',
1166
			'Asia/Kuching',
1167
		),
1168
		'MZ' => array(
1169
			'Africa/Maputo',
1170
		),
1171
		'NA' => array(
1172
			'Africa/Windhoek',
1173
		),
1174
		'NC' => array(
1175
			'Pacific/Noumea',
1176
		),
1177
		'NE' => array(
1178
			'Africa/Niamey',
1179
		),
1180
		'NF' => array(
1181
			'Pacific/Norfolk',
1182
		),
1183
		'NG' => array(
1184
			'Africa/Lagos',
1185
		),
1186
		'NI' => array(
1187
			'America/Managua',
1188
		),
1189
		'NL' => array(
1190
			'Europe/Amsterdam',
1191
		),
1192
		'NO' => array(
1193
			'Europe/Oslo',
1194
		),
1195
		'NP' => array(
1196
			'Asia/Kathmandu',
1197
		),
1198
		'NR' => array(
1199
			'Pacific/Nauru',
1200
		),
1201
		'NU' => array(
1202
			'Pacific/Niue',
1203
		),
1204
		'NZ' => array(
1205
			'Pacific/Auckland',
1206
			'Pacific/Chatham',
1207
		),
1208
		'OM' => array(
1209
			'Asia/Muscat',
1210
		),
1211
		'PA' => array(
1212
			'America/Panama',
1213
		),
1214
		'PE' => array(
1215
			'America/Lima',
1216
		),
1217
		'PF' => array(
1218
			'Pacific/Tahiti',
1219
			'Pacific/Marquesas',
1220
			'Pacific/Gambier',
1221
		),
1222
		'PG' => array(
1223
			'Pacific/Port_Moresby',
1224
			'Pacific/Bougainville',
1225
		),
1226
		'PH' => array(
1227
			'Asia/Manila',
1228
		),
1229
		'PK' => array(
1230
			'Asia/Karachi',
1231
		),
1232
		'PL' => array(
1233
			'Europe/Warsaw',
1234
		),
1235
		'PM' => array(
1236
			'America/Miquelon',
1237
		),
1238
		'PN' => array(
1239
			'Pacific/Pitcairn',
1240
		),
1241
		'PR' => array(
1242
			'America/Puerto_Rico',
1243
		),
1244
		'PS' => array(
1245
			'Asia/Gaza',
1246
			'Asia/Hebron',
1247
		),
1248
		'PT' => array(
1249
			'Europe/Lisbon',
1250
			'Atlantic/Madeira',
1251
			'Atlantic/Azores',
1252
		),
1253
		'PW' => array(
1254
			'Pacific/Palau',
1255
		),
1256
		'PY' => array(
1257
			'America/Asuncion',
1258
		),
1259
		'QA' => array(
1260
			'Asia/Qatar',
1261
		),
1262
		'RE' => array(
1263
			'Indian/Reunion',
1264
		),
1265
		'RO' => array(
1266
			'Europe/Bucharest',
1267
		),
1268
		'RS' => array(
1269
			'Europe/Belgrade',
1270
		),
1271
		'RU' => array(
1272
			'Europe/Moscow',
1273
			'Asia/Novosibirsk',
1274
			'Asia/Yekaterinburg',
1275
			'Europe/Samara',
1276
			'Asia/Omsk',
1277
			'Asia/Krasnoyarsk',
1278
			'Europe/Volgograd',
1279
			'Europe/Saratov',
1280
			'Asia/Barnaul',
1281
			'Europe/Ulyanovsk',
1282
			'Asia/Irkutsk',
1283
			'Asia/Vladivostok',
1284
			'Asia/Tomsk',
1285
			'Asia/Novokuznetsk',
1286
			'Europe/Astrakhan',
1287
			'Europe/Kirov',
1288
			'Europe/Kaliningrad',
1289
			'Asia/Chita',
1290
			'Asia/Yakutsk',
1291
			'Asia/Sakhalin',
1292
			'Asia/Kamchatka',
1293
			'Asia/Magadan',
1294
			'Asia/Anadyr',
1295
			'Asia/Khandyga',
1296
			'Asia/Ust-Nera',
1297
			'Asia/Srednekolymsk',
1298
		),
1299
		'RW' => array(
1300
			'Africa/Kigali',
1301
		),
1302
		'SA' => array(
1303
			'Asia/Riyadh',
1304
		),
1305
		'SB' => array(
1306
			'Pacific/Guadalcanal',
1307
		),
1308
		'SC' => array(
1309
			'Indian/Mahe',
1310
		),
1311
		'SD' => array(
1312
			'Africa/Khartoum',
1313
		),
1314
		'SE' => array(
1315
			'Europe/Stockholm',
1316
		),
1317
		'SG' => array(
1318
			'Asia/Singapore',
1319
		),
1320
		'SH' => array(
1321
			'Atlantic/St_Helena',
1322
		),
1323
		'SI' => array(
1324
			'Europe/Ljubljana',
1325
		),
1326
		'SJ' => array(
1327
			'Arctic/Longyearbyen',
1328
		),
1329
		'SK' => array(
1330
			'Europe/Bratislava',
1331
		),
1332
		'SL' => array(
1333
			'Africa/Freetown',
1334
		),
1335
		'SM' => array(
1336
			'Europe/San_Marino',
1337
		),
1338
		'SN' => array(
1339
			'Africa/Dakar',
1340
		),
1341
		'SO' => array(
1342
			'Africa/Mogadishu',
1343
		),
1344
		'SR' => array(
1345
			'America/Paramaribo',
1346
		),
1347
		'SS' => array(
1348
			'Africa/Juba',
1349
		),
1350
		'ST' => array(
1351
			'Africa/Sao_Tome',
1352
		),
1353
		'SV' => array(
1354
			'America/El_Salvador',
1355
		),
1356
		'SX' => array(
1357
			'America/Lower_Princes',
1358
		),
1359
		'SY' => array(
1360
			'Asia/Damascus',
1361
		),
1362
		'SZ' => array(
1363
			'Africa/Mbabane',
1364
		),
1365
		'TC' => array(
1366
			'America/Grand_Turk',
1367
		),
1368
		'TD' => array(
1369
			'Africa/Ndjamena',
1370
		),
1371
		'TF' => array(
1372
			'Indian/Kerguelen',
1373
		),
1374
		'TG' => array(
1375
			'Africa/Lome',
1376
		),
1377
		'TH' => array(
1378
			'Asia/Bangkok',
1379
		),
1380
		'TJ' => array(
1381
			'Asia/Dushanbe',
1382
		),
1383
		'TK' => array(
1384
			'Pacific/Fakaofo',
1385
		),
1386
		'TL' => array(
1387
			'Asia/Dili',
1388
		),
1389
		'TM' => array(
1390
			'Asia/Ashgabat',
1391
		),
1392
		'TN' => array(
1393
			'Africa/Tunis',
1394
		),
1395
		'TO' => array(
1396
			'Pacific/Tongatapu',
1397
		),
1398
		'TR' => array(
1399
			'Europe/Istanbul',
1400
		),
1401
		'TT' => array(
1402
			'America/Port_of_Spain',
1403
		),
1404
		'TV' => array(
1405
			'Pacific/Funafuti',
1406
		),
1407
		'TW' => array(
1408
			'Asia/Taipei',
1409
		),
1410
		'TZ' => array(
1411
			'Africa/Dar_es_Salaam',
1412
		),
1413
		'UA' => array(
1414
			'Europe/Kiev',
1415
			'Europe/Zaporozhye',
1416
			'Europe/Simferopol',
1417
			'Europe/Uzhgorod',
1418
		),
1419
		'UG' => array(
1420
			'Africa/Kampala',
1421
		),
1422
		'UM' => array(
1423
			'Pacific/Midway',
1424
1425
			'Pacific/Wake',
1426
		),
1427
		'US' => array(
1428
			'America/New_York',
1429
			'America/Los_Angeles',
1430
			'America/Chicago',
1431
			'America/Denver',
1432
			'America/Phoenix',
1433
			'America/Indiana/Indianapolis',
1434
			'America/Detroit',
1435
			'America/Kentucky/Louisville',
1436
			'Pacific/Honolulu',
1437
			'America/Anchorage',
1438
			'America/Boise',
1439
			'America/Juneau',
1440
			'America/Indiana/Vincennes',
1441
			'America/Sitka',
1442
			'America/Menominee',
1443
			'America/Indiana/Tell_City',
1444
			'America/Kentucky/Monticello',
1445
			'America/Nome',
1446
			'America/Indiana/Knox',
1447
			'America/North_Dakota/Beulah',
1448
			'America/Indiana/Winamac',
1449
			'America/Indiana/Petersburg',
1450
			'America/Indiana/Vevay',
1451
			'America/Metlakatla',
1452
			'America/North_Dakota/New_Salem',
1453
			'America/Indiana/Marengo',
1454
			'America/Yakutat',
1455
			'America/North_Dakota/Center',
1456
			'America/Adak',
1457
		),
1458
		'UY' => array(
1459
			'America/Montevideo',
1460
		),
1461
		'UZ' => array(
1462
			'Asia/Tashkent',
1463
			'Asia/Samarkand',
1464
		),
1465
		'VA' => array(
1466
			'Europe/Vatican',
1467
		),
1468
		'VC' => array(
1469
			'America/St_Vincent',
1470
		),
1471
		'VE' => array(
1472
			'America/Caracas',
1473
		),
1474
		'VG' => array(
1475
			'America/Tortola',
1476
		),
1477
		'VI' => array(
1478
			'America/St_Thomas',
1479
		),
1480
		'VN' => array(
1481
			'Asia/Ho_Chi_Minh',
1482
		),
1483
		'VU' => array(
1484
			'Pacific/Efate',
1485
		),
1486
		'WF' => array(
1487
			'Pacific/Wallis',
1488
		),
1489
		'WS' => array(
1490
			'Pacific/Apia',
1491
		),
1492
		'YE' => array(
1493
			'Asia/Aden',
1494
		),
1495
		'YT' => array(
1496
			'Indian/Mayotte',
1497
		),
1498
		'ZA' => array(
1499
			'Africa/Johannesburg',
1500
		),
1501
		'ZM' => array(
1502
			'Africa/Lusaka',
1503
		),
1504
		'ZW' => array(
1505
			'Africa/Harare',
1506
		),
1507
	);
1508
1509
	$country_tzids = isset($sorted_tzids[$country_code]) ? $sorted_tzids[$country_code] : array();
1510
1511
	// Ensure we haven't missed anything, but never include obsolete ones either.
1512
	$temp = array_intersect(@timezone_identifiers_list(DateTimeZone::PER_COUNTRY, $country_code), timezone_identifiers_list());
0 ignored issues
show
Bug introduced by
It seems like timezone_identifiers_list() can also be of type false; however, parameter $array2 of array_intersect() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

1512
	$temp = array_intersect(@timezone_identifiers_list(DateTimeZone::PER_COUNTRY, $country_code), /** @scrutinizer ignore-type */ timezone_identifiers_list());
Loading history...
Bug introduced by
It seems like @timezone_identifiers_li...COUNTRY, $country_code) can also be of type false; however, parameter $array1 of array_intersect() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

1512
	$temp = array_intersect(/** @scrutinizer ignore-type */ @timezone_identifiers_list(DateTimeZone::PER_COUNTRY, $country_code), timezone_identifiers_list());
Loading history...
1513
	if (!empty($temp))
1514
		$country_tzids = array_unique(array_merge($country_tzids, $temp));
1515
1516
	return $country_tzids;
1517
}
1518
1519
?>