xref: /PHP-7.3/ext/date/tests/bug33415-2.phpt (revision bd1d2c7b)
1--TEST--
2Bug #33415 [2] (Possibly invalid non-one-hour DST or timezone shifts)
3--FILE--
4<?php
5date_default_timezone_set('Africa/Bujumbura');
6
7print "TZ=Africa/Bujumbura - *Note*: Unexpected, as does not appear to
8have a DST or timezone transition.\n";
9$tStamp = mktime (17, 17, 17, 1, 1, 1970);
10print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
11$strtotime_tstamp = strtotime("next Wednesday", $tStamp);
12print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
13print "wanted=Wednesday            00:00:00\n\n";
14
15print "TZ=Asia/Thimbu - Is it OK for this to be 0:30 AM? yes\n";
16date_default_timezone_set('Asia/Thimbu');
17$tStamp = mktime (17, 17, 17, 1, 6476, 1970);
18print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
19$strtotime_tstamp = strtotime("next Thursday", $tStamp);
20print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
21print "wanted=Thursday            00:30:00\n\n";
22
23print "TZ=Indian/Cocos - Is it OK for this to be 6:30 AM? Note: does not
24appear to have a DST or timezone transition.\n";
25date_default_timezone_set('Indian/Cocos');
26$tStamp = mktime (17, 17, 17, 1, 1, 1970);
27print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
28$strtotime_tstamp = strtotime("next Thursday", $tStamp);
29print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
30print "wanted=Thursday            00:00:00\n\n";
31
32print "TZ=Africa/Lubumbashi - Is it OK for this to be 2 AM? Note: does
33not appear to have a DST or timezone transition.\n";
34date_default_timezone_set('Africa/Lubumbashi');
35$tStamp = mktime (17, 17, 17, 1, 1, 1970);
36print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
37$strtotime_tstamp = strtotime("next Saturday", $tStamp);
38print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
39print "wanted=Saturday            00:00:00\n\n";
40
41print "TZ=Asia/Kashgar - Is it OK for this to be 3 AM? yes\n";
42date_default_timezone_set('Asia/Kashgar');
43$tStamp = mktime (17, 17, 17, 1, 3767, 1970);
44print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
45$strtotime_tstamp = strtotime("next Thursday", $tStamp);
46print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
47print "wanted=Thursday            03:00:00\n\n";
48
49print "TZ=Indian/Christmas - Is it OK for this to be 7 AM?  Note: does
50not appear to have a DST or timezone transition.\n";
51date_default_timezone_set('Indian/Christmas');
52$tStamp = mktime (17, 17, 17, 1, 1, 1970);
53print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
54$strtotime_tstamp = strtotime("next Sunday", $tStamp);
55print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
56print "wanted=Sunday            00:00:00\n\n";
57
58print "TZ=America/Santo_Domingo - Is it OK for this to be 0:30 AM? yes\n";
59date_default_timezone_set('America/Santo_Domingo');
60$tStamp = mktime (17, 17, 17, 1, 291, 1970);
61print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
62$strtotime_tstamp = strtotime("next Sunday", $tStamp);
63print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
64print "wanted=Sunday            00:30:00\n\n";
65
66print "TZ=Pacific/Truk - Is it OK for this to be 10 AM?  Note: does not
67appear to have a DST or timezone transition.\n";
68date_default_timezone_set('Pacific/Truk');
69$tStamp = mktime (17, 17, 17, 1, 1, 1970);
70print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
71$strtotime_tstamp = strtotime("next Tuesday", $tStamp);
72print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
73print "wanted=Tuesday            00:00:00\n\n";
74
75print "TZ=Pacific/Ponape - Is it OK for this to be 11 AM?  Note: does
76not appear to have a DST or timezone transition.\n";
77date_default_timezone_set('Pacific/Ponape');
78$tStamp = mktime (17, 17, 17, 1, 1, 1970);
79print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
80$strtotime_tstamp = strtotime("next Monday", $tStamp);
81print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
82print "wanted=Monday            00:00:00\n\n";
83
84print "TZ=America/Scoresbysund - Is it OK for this to be 2 AM? yes\n";
85date_default_timezone_set('America/Scoresbysund');
86$tStamp = mktime (17, 17, 17, 1, 4099, 1970);
87print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
88$strtotime_tstamp = strtotime("next Sunday", $tStamp);
89print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
90print "wanted=Sunday            02:00:00\n\n";
91
92print "TZ=America/Guyana - Is it OK for this to be 0:45 AM? yes\n";
93date_default_timezone_set('America/Guyana');
94$tStamp = mktime (17, 17, 17, 1, 2031, 1970);
95print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
96$strtotime_tstamp = strtotime("next Thursday", $tStamp);
97print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
98print "wanted=Thursday            00:45:00\n\n";
99
100print "TZ=Asia/Tehran - Is it OK for this to be 0:30 AM? yes\n";
101date_default_timezone_set('Asia/Tehran');
102$tStamp = mktime (17, 17, 17, 1, 2855, 1970);
103print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
104$strtotime_tstamp = strtotime("next Tuesday", $tStamp);
105print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
106print "wanted=Tuesday            00:30:00\n\n";
107
108print "TZ=Pacific/Tarawa - Is it OK for this to be Midday? Note: does
109not appear to have a DST or timezone transition.\n";
110date_default_timezone_set('Pacific/Tarawa');
111$tStamp = mktime (17, 17, 17, 1, 1, 1970);
112print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
113$strtotime_tstamp = strtotime("next Monday", $tStamp);
114print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
115print "wanted=Monday            00:00:00\n\n";
116
117print "TZ=Africa/Monrovia - Is it OK for this to be 00:44:30 AM? yes\n";
118date_default_timezone_set('Africa/Monrovia');
119$tStamp = mktime (17, 17, 17, 1, 730, 1970);
120print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
121$strtotime_tstamp = strtotime("next Friday", $tStamp);
122print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
123print "wanted=Friday            00:44:30\n\n";
124
125print "TZ=Asia/Katmandu - Is it OK for this to 0:15 AM?. yes\n";
126date_default_timezone_set('Asia/Katmandu');
127$tStamp = mktime (17, 17, 17, 1, 5838, 1970);
128print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
129$strtotime_tstamp = strtotime("next Wednesday", $tStamp);
130print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
131print "wanted=Wednesday            00:15:00\n\n";
132
133print "TZ=Pacific/Nauru - Is it OK for this to be 0:30? yes\n";
134date_default_timezone_set('Pacific/Nauru');
135$tStamp = mktime (17, 17, 17, 2, 3, 1979);
136print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
137$strtotime_tstamp = strtotime("next Saturday +2 hours", $tStamp);
138print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
139print "wanted=Saturday            02:30:00\n\n";
140
141print "TZ=Pacific/Niue - Is it OK for this to be 0:30 AM? yes\n";
142date_default_timezone_set('Pacific/Niue');
143$tStamp = mktime (17, 17, 17, 1, 3189, 1970);
144print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
145$strtotime_tstamp = strtotime("next Sunday", $tStamp);
146print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
147print "wanted=Sunday            00:30:00\n\n";
148
149print "TZ=Pacific/Port_Moresby - Is it OK for this to be 10 AM? No DST
150or timezone transition.\n";
151date_default_timezone_set('Pacific/Port_Moresby');
152$tStamp = mktime (17, 17, 17, 1, 1, 1970);
153print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
154$strtotime_tstamp = strtotime("next Thursday", $tStamp);
155print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
156print "wanted=Thursday            00:00:00\n\n";
157
158print "TZ=America/Miquelon - Is it OK for this to be 1 AM ? yes\n";
159date_default_timezone_set('America/Miquelon');
160$tStamp = mktime (17, 17, 17, 1, 3767, 1970);
161print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
162$strtotime_tstamp = strtotime("next Thursday", $tStamp);
163print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
164print "wanted=Thursday            01:00:00\n\n";
165
166print "TZ=Pacific/Palau - Is it OK for this to be 9 AM? No DST or
167timezone transition.\n";
168date_default_timezone_set('Pacific/Palau');
169$tStamp = mktime (17, 17, 17, 1, 1, 1970);
170print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
171$strtotime_tstamp = strtotime("next Saturday", $tStamp);
172print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
173print "wanted=Saturday            00:00:00\n\n";
174
175print "TZ=Pacific/Funafuti - Is it OK for this to be midday?  Note: does
176not appear to have a DST or timezone transition.\n";
177date_default_timezone_set('Pacific/Funafuti');
178$tStamp = mktime (17, 17, 17, 1, 1, 1970);
179print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
180$strtotime_tstamp = strtotime("next Wednesday", $tStamp);
181print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
182print "wanted=Wednesday            00:00:00\n\n";
183
184print "TZ=Pacific/Wake - Is it OK for this to be midday?  Note: does not
185appear to have a DST or timezone transition.\n";
186date_default_timezone_set('Pacific/Wake');
187$tStamp = mktime (17, 17, 17, 1, 1, 1970);
188print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
189$strtotime_tstamp = strtotime("next Tuesday", $tStamp);
190print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
191print "wanted=Tuesday            00:00:00\n\n";
192
193print "TZ=Pacific/Wallis - Is it OK for this to be midday?  Note: does
194not appear to have a DST or timezone transition.\n";
195date_default_timezone_set('Pacific/Wallis');
196$tStamp = mktime (17, 17, 17, 1, 1, 1970);
197print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
198$strtotime_tstamp = strtotime("next Tuesday", $tStamp);
199print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
200print "wanted=Tuesday            00:00:00\n\n";
201
202print "TZ=America/Paramaribo - Is it OK for this to be 0:30 AM? yes\n";
203date_default_timezone_set('America/Paramaribo');
204$tStamp = mktime (17, 17, 17, 1, 5381, 1970);
205print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
206$strtotime_tstamp = strtotime("next Monday", $tStamp);
207print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
208print "wanted=Monday            00:30:00\n\n";
209
210?>
211--EXPECT--
212TZ=Africa/Bujumbura - *Note*: Unexpected, as does not appear to
213have a DST or timezone transition.
214tStamp=Thursday 1970-01-01 17:17:17 CAT 0
215result=Wednesday 1970-01-07 00:00:00 CAT 0
216wanted=Wednesday            00:00:00
217
218TZ=Asia/Thimbu - Is it OK for this to be 0:30 AM? yes
219tStamp=Thursday 1987-09-24 17:17:17 +0530 0
220result=Thursday 1987-10-01 00:30:00 +06 0
221wanted=Thursday            00:30:00
222
223TZ=Indian/Cocos - Is it OK for this to be 6:30 AM? Note: does not
224appear to have a DST or timezone transition.
225tStamp=Thursday 1970-01-01 17:17:17 +0630 0
226result=Thursday 1970-01-08 00:00:00 +0630 0
227wanted=Thursday            00:00:00
228
229TZ=Africa/Lubumbashi - Is it OK for this to be 2 AM? Note: does
230not appear to have a DST or timezone transition.
231tStamp=Thursday 1970-01-01 17:17:17 CAT 0
232result=Saturday 1970-01-03 00:00:00 CAT 0
233wanted=Saturday            00:00:00
234
235TZ=Asia/Kashgar - Is it OK for this to be 3 AM? yes
236tStamp=Thursday 1980-04-24 17:17:17 +06 0
237result=Thursday 1980-05-01 00:00:00 +06 0
238wanted=Thursday            03:00:00
239
240TZ=Indian/Christmas - Is it OK for this to be 7 AM?  Note: does
241not appear to have a DST or timezone transition.
242tStamp=Thursday 1970-01-01 17:17:17 +07 0
243result=Sunday 1970-01-04 00:00:00 +07 0
244wanted=Sunday            00:00:00
245
246TZ=America/Santo_Domingo - Is it OK for this to be 0:30 AM? yes
247tStamp=Sunday 1970-10-18 17:17:17 EST 0
248result=Sunday 1970-10-25 00:30:00 -0430 1
249wanted=Sunday            00:30:00
250
251TZ=Pacific/Truk - Is it OK for this to be 10 AM?  Note: does not
252appear to have a DST or timezone transition.
253tStamp=Thursday 1970-01-01 17:17:17 +10 0
254result=Tuesday 1970-01-06 00:00:00 +10 0
255wanted=Tuesday            00:00:00
256
257TZ=Pacific/Ponape - Is it OK for this to be 11 AM?  Note: does
258not appear to have a DST or timezone transition.
259tStamp=Thursday 1970-01-01 17:17:17 +11 0
260result=Monday 1970-01-05 00:00:00 +11 0
261wanted=Monday            00:00:00
262
263TZ=America/Scoresbysund - Is it OK for this to be 2 AM? yes
264tStamp=Sunday 1981-03-22 17:17:17 -02 0
265result=Sunday 1981-03-29 02:00:00 +00 1
266wanted=Sunday            02:00:00
267
268TZ=America/Guyana - Is it OK for this to be 0:45 AM? yes
269tStamp=Thursday 1975-07-24 17:17:17 -0345 0
270result=Thursday 1975-07-31 00:45:00 -03 0
271wanted=Thursday            00:45:00
272
273TZ=Asia/Tehran - Is it OK for this to be 0:30 AM? yes
274tStamp=Tuesday 1977-10-25 17:17:17 +0330 0
275result=Tuesday 1977-11-01 00:30:00 +04 0
276wanted=Tuesday            00:30:00
277
278TZ=Pacific/Tarawa - Is it OK for this to be Midday? Note: does
279not appear to have a DST or timezone transition.
280tStamp=Thursday 1970-01-01 17:17:17 +12 0
281result=Monday 1970-01-05 00:00:00 +12 0
282wanted=Monday            00:00:00
283
284TZ=Africa/Monrovia - Is it OK for this to be 00:44:30 AM? yes
285tStamp=Friday 1971-12-31 17:17:17 MMT 0
286result=Friday 1972-01-07 00:44:30 GMT 0
287wanted=Friday            00:44:30
288
289TZ=Asia/Katmandu - Is it OK for this to 0:15 AM?. yes
290tStamp=Wednesday 1985-12-25 17:17:17 +0530 0
291result=Wednesday 1986-01-01 00:15:00 +0545 0
292wanted=Wednesday            00:15:00
293
294TZ=Pacific/Nauru - Is it OK for this to be 0:30? yes
295tStamp=Saturday 1979-02-03 17:17:17 +1130 0
296result=Saturday 1979-02-10 02:30:00 +12 0
297wanted=Saturday            02:30:00
298
299TZ=Pacific/Niue - Is it OK for this to be 0:30 AM? yes
300tStamp=Sunday 1978-09-24 17:17:17 -1130 0
301result=Sunday 1978-10-01 00:30:00 -11 0
302wanted=Sunday            00:30:00
303
304TZ=Pacific/Port_Moresby - Is it OK for this to be 10 AM? No DST
305or timezone transition.
306tStamp=Thursday 1970-01-01 17:17:17 +10 0
307result=Thursday 1970-01-08 00:00:00 +10 0
308wanted=Thursday            00:00:00
309
310TZ=America/Miquelon - Is it OK for this to be 1 AM ? yes
311tStamp=Thursday 1980-04-24 17:17:17 AST 0
312result=Thursday 1980-05-01 01:00:00 -03 0
313wanted=Thursday            01:00:00
314
315TZ=Pacific/Palau - Is it OK for this to be 9 AM? No DST or
316timezone transition.
317tStamp=Thursday 1970-01-01 17:17:17 +09 0
318result=Saturday 1970-01-03 00:00:00 +09 0
319wanted=Saturday            00:00:00
320
321TZ=Pacific/Funafuti - Is it OK for this to be midday?  Note: does
322not appear to have a DST or timezone transition.
323tStamp=Thursday 1970-01-01 17:17:17 +12 0
324result=Wednesday 1970-01-07 00:00:00 +12 0
325wanted=Wednesday            00:00:00
326
327TZ=Pacific/Wake - Is it OK for this to be midday?  Note: does not
328appear to have a DST or timezone transition.
329tStamp=Thursday 1970-01-01 17:17:17 +12 0
330result=Tuesday 1970-01-06 00:00:00 +12 0
331wanted=Tuesday            00:00:00
332
333TZ=Pacific/Wallis - Is it OK for this to be midday?  Note: does
334not appear to have a DST or timezone transition.
335tStamp=Thursday 1970-01-01 17:17:17 +12 0
336result=Tuesday 1970-01-06 00:00:00 +12 0
337wanted=Tuesday            00:00:00
338
339TZ=America/Paramaribo - Is it OK for this to be 0:30 AM? yes
340tStamp=Monday 1984-09-24 17:17:17 -0330 0
341result=Monday 1984-10-01 00:30:00 -03 0
342wanted=Monday            00:30:00
343