@@ -96,6 +96,12 @@ public function formatProvider()
96
96
$ dateTime = new \DateTime ('@0 ' );
97
97
$ dateTimeImmutable = new \DateTimeImmutable ('@0 ' );
98
98
99
+ /* https://unicode-org.atlassian.net/browse/ICU-21647 */
100
+ $ expectedQuarterX5 = '1 ' ;
101
+ if (\defined ('INTL_ICU_VERSION ' ) && version_compare (\INTL_ICU_VERSION , '70.1 ' , '< ' )) {
102
+ $ expectedQuarterX5 = '1st quarter ' ;
103
+ }
104
+
99
105
$ formatData = [
100
106
/* general */
101
107
['y-M-d ' , 0 , '1970-1-1 ' ],
@@ -144,13 +150,13 @@ public function formatProvider()
144
150
['QQ ' , 0 , '01 ' ],
145
151
['QQQ ' , 0 , 'Q1 ' ],
146
152
['QQQQ ' , 0 , '1st quarter ' ],
147
- ['QQQQQ ' , 0 , ' 1st quarter ' ],
153
+ ['QQQQQ ' , 0 , $ expectedQuarterX5 ],
148
154
149
155
['q ' , 0 , '1 ' ],
150
156
['qq ' , 0 , '01 ' ],
151
157
['qqq ' , 0 , 'Q1 ' ],
152
158
['qqqq ' , 0 , '1st quarter ' ],
153
- ['qqqqq ' , 0 , ' 1st quarter ' ],
159
+ ['qqqqq ' , 0 , $ expectedQuarterX5 ],
154
160
155
161
// 4 months
156
162
['Q ' , 7776000 , '2 ' ],
@@ -363,6 +369,10 @@ public function formatWithTimezoneProvider()
363
369
*/
364
370
public function testFormatTimezone ($ pattern , $ timezone , $ expected )
365
371
{
372
+ if ((80114 === \PHP_VERSION_ID || 80201 === \PHP_VERSION_ID ) && str_contains ($ timezone , 'GMT ' )) {
373
+ $ this ->markTestSkipped ('Broken version of PHP ' );
374
+ }
375
+
366
376
$ formatter = $ this ->getDefaultDateFormatter ($ pattern );
367
377
$ formatter ->setTimeZone (new \DateTimeZone ($ timezone ));
368
378
@@ -421,6 +431,10 @@ public function formatTimezoneProvider()
421
431
422
432
public function testFormatWithGmtTimezone ()
423
433
{
434
+ if (80114 === \PHP_VERSION_ID || 80201 === \PHP_VERSION_ID ) {
435
+ $ this ->markTestSkipped ('Broken version of PHP ' );
436
+ }
437
+
424
438
$ formatter = $ this ->getDefaultDateFormatter ('zzzz ' );
425
439
426
440
$ formatter ->setTimeZone ('GMT+03:00 ' );
@@ -430,6 +444,10 @@ public function testFormatWithGmtTimezone()
430
444
431
445
public function testFormatWithGmtTimeZoneAndMinutesOffset ()
432
446
{
447
+ if (80114 === \PHP_VERSION_ID || 80201 === \PHP_VERSION_ID ) {
448
+ $ this ->markTestSkipped ('Broken version of PHP ' );
449
+ }
450
+
433
451
$ formatter = $ this ->getDefaultDateFormatter ('zzzz ' );
434
452
435
453
$ formatter ->setTimeZone ('GMT+00:30 ' );
@@ -794,6 +812,10 @@ public function parseSecondProvider()
794
812
795
813
public function parseTimezoneProvider ()
796
814
{
815
+ if (80114 === \PHP_VERSION_ID || 80201 === \PHP_VERSION_ID ) {
816
+ return [['y-M-d HH:mm:ss ' , '1970-1-1 00:00:00 ' , 0 ]];
817
+ }
818
+
797
819
return [
798
820
['y-M-d HH:mm:ss zzzz ' , '1970-1-1 00:00:00 GMT-03:00 ' , 10800 ],
799
821
['y-M-d HH:mm:ss zzzz ' , '1970-1-1 00:00:00 GMT-04:00 ' , 14400 ],
@@ -912,6 +934,10 @@ public function testSetPattern()
912
934
*/
913
935
public function testSetTimeZoneId ($ timeZoneId , $ expectedTimeZoneId )
914
936
{
937
+ if ((80114 === \PHP_VERSION_ID || 80201 === \PHP_VERSION_ID ) && str_contains ($ timeZoneId ?? '' , 'GMT ' )) {
938
+ $ this ->markTestSkipped ('Broken version of PHP ' );
939
+ }
940
+
915
941
$ formatter = $ this ->getDefaultDateFormatter ();
916
942
917
943
$ formatter ->setTimeZone ($ timeZoneId );
0 commit comments