@@ -45,11 +45,20 @@ public function testDateTimeRange($language, $start, $end, $expected)
45
45
$ this ->assertEquals ($ expected , $ formatter ->format ($ start , $ end ));
46
46
}
47
47
48
+ private static function get_space () : string
49
+ {
50
+ if (version_compare (INTL_ICU_VERSION , '72.1 ' , '< ' )) {
51
+ return ' ' ; // Space (U+0020)
52
+ }
53
+ return ' ' ; // Narrow non-breaking space (U+202F)
54
+ }
55
+
48
56
public static function providerDateTimeRange ()
49
57
{
58
+ $ space = self ::get_space ();
50
59
return [
51
- ['en ' , '2013-10-05 01:01:01 ' , '2013-10-20 00:00:00 ' , 'Oct 5, 2013, 1:01 AM – Oct 20, 2013, 12:00 AM ' ],
52
- ['en ' , '2013-10-05 10:00:01 ' , '2013-10-05 13:30:00 ' , 'Oct 5, 2013, 10:00 AM – 1:30 PM ' ],
60
+ ['en ' , '2013-10-05 01:01:01 ' , '2013-10-20 00:00:00 ' , 'Oct 5, 2013, 1:01 ' . $ space . ' AM – Oct 20, 2013, 12:00 ' . $ space . ' AM ' ],
61
+ ['en ' , '2013-10-05 10:00:01 ' , '2013-10-05 13:30:00 ' , 'Oct 5, 2013, 10:00 ' . $ space . ' AM – 1:30 ' . $ space . ' PM ' ],
53
62
['de ' , '2013-10-05 01:01:01 ' , '2013-10-20 00:00:00 ' , '05.10.2013, 01:01 – 20.10.2013, 00:00 ' ],
54
63
['de ' , '2013-10-05 10:00:01 ' , '2013-10-05 13:30:00 ' , '05.10.2013, 10:00 – 13:30 ' ],
55
64
];
@@ -110,7 +119,8 @@ public function testCustomOptions()
110
119
->setTimeType (IntlDateFormatter::SHORT );
111
120
112
121
$ formatted = $ ranger ->format ('2013-10-05 10:00:01 ' , '2013-10-05 13:30:00 ' );
113
- $ this ->assertEquals ('October 5, 2013: 10:00 AM -- 1:30 PM ' , $ formatted );
122
+ $ space = self ::get_space ();
123
+ $ this ->assertEquals ('October 5, 2013: 10:00 ' . $ space . 'AM -- 1:30 ' . $ space . 'PM ' , $ formatted );
114
124
}
115
125
116
126
public function testEscapeCharParsing ()
@@ -123,7 +133,8 @@ public function testEscapeCharParsing()
123
133
->setTimeType (IntlDateFormatter::SHORT );
124
134
125
135
$ formatted = $ ranger ->format ('2013-10-05 10:00:01 ' , '2013-10-05 13:30:00 ' );
126
- $ this ->assertEquals ('October 5, 2013, between 10:00 AM and 1:30 PM ' , $ formatted );
136
+ $ space = self ::get_space ();
137
+ $ this ->assertEquals ('October 5, 2013, between 10:00 ' . $ space . 'AM and 1:30 ' . $ space . 'PM ' , $ formatted );
127
138
}
128
139
129
140
public function testDateTime ()
@@ -184,7 +195,8 @@ public function testOffsetTimezone()
184
195
$ ranger ->setTimeType (IntlDateFormatter::SHORT );
185
196
$ formatted = $ ranger ->format ($ start , $ end );
186
197
date_default_timezone_set ($ backup );
187
- $ this ->assertEquals ('Oct 4, 2013, 7:00 PM – Oct 19, 2013, 7:00 PM ' , $ formatted );
198
+ $ space = self ::get_space ();
199
+ $ this ->assertEquals ('Oct 4, 2013, 7:00 ' . $ space . 'PM – Oct 19, 2013, 7:00 ' . $ space . 'PM ' , $ formatted );
188
200
}
189
201
190
202
/**
@@ -201,13 +213,15 @@ public function testNoDate($language, $start, $end, $expected)
201
213
202
214
public static function providerNoDate ()
203
215
{
216
+ $ space = self ::get_space ();
217
+
204
218
return [
205
- ['en ' , '2013-10-05 10:00:00 ' , '2013-10-05 13:30:00 ' , '10:00 AM – 1:30 PM ' ],
206
- ['en ' , '2013-10-05 12:20:00 ' , '2013-10-05 13:30:00 ' , '12:20 – 1:30 PM ' ],
207
- ['en ' , '12:20:00 ' , '13:30:00 ' , '12:20 – 1:30 PM ' ],
219
+ ['en ' , '2013-10-05 10:00:00 ' , '2013-10-05 13:30:00 ' , '10:00 ' . $ space . ' AM – 1:30 ' . $ space . ' PM ' ],
220
+ ['en ' , '2013-10-05 12:20:00 ' , '2013-10-05 13:30:00 ' , '12:20 – 1:30 ' . $ space . ' PM ' ],
221
+ ['en ' , '12:20:00 ' , '13:30:00 ' , '12:20 – 1:30 ' . $ space . ' PM ' ],
208
222
// get a little weird
209
- ['en ' , '2013-10-05 12:20:00 ' , '2013-10-07 13:30:00 ' , '12:20 – 1:30 PM ' ],
210
- ['en ' , '2012-06-05 10:20:00 ' , '2013-10-07 13:30:00 ' , '10:20 AM – 1:30 PM ' ],
223
+ ['en ' , '2013-10-05 12:20:00 ' , '2013-10-07 13:30:00 ' , '12:20 – 1:30 ' . $ space . ' PM ' ],
224
+ ['en ' , '2012-06-05 10:20:00 ' , '2013-10-07 13:30:00 ' , '10:20 ' . $ space . ' AM – 1:30 ' . $ space . ' PM ' ],
211
225
];
212
226
}
213
227
0 commit comments