]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - extlib/Date/tests/test_addseconds.php
[PEAR] Modernize Validate code
[quix0rs-gnu-social.git] / extlib / Date / tests / test_addseconds.php
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3
4 /**
5  * Tests for the Date_Calc::addSeconds() function
6  *
7  * Any individual tests that fail will have their name, expected result
8  * and actual result printed out.  So seeing no output when executing
9  * this file is a good thing.
10  *
11  * Can be run via CLI or a web server.
12  *
13  * This test senses whether it is from an installation of PEAR::Date or if
14  * it's from CVS or a .tar file.  If it's an installed version, use the
15  * installed version of Date.  Otherwise, use the local development
16  * copy of Date.
17  *
18  * PHP versions 4 and 5
19  *
20  * LICENSE:
21  *
22  * Copyright (c) 2007 C.A. Woodcock <c01234@netcomuk.co.uk>
23  * All rights reserved.
24  *
25  * This source file is subject to the New BSD license that is bundled
26  * with this package in the file LICENSE.txt.
27  * It is also available through the world-wide-web at this URL:
28  * http://www.opensource.org/licenses/bsd-license.php
29  * If you did not receive a copy of the license and are unable to
30  * obtain it through the world-wide-web, please send an email
31  * to pear-dev@lists.php.net so we can send you a copy immediately.
32  *
33  * @category   Date and Time
34  * @package    Date
35  * @author     C.A. Woodcock <c01234@netcomuk.co.uk>
36  * @copyright  Copyright (c) 2007 C.A. Woodcock <c01234@netcomuk.co.uk>
37  * @license    http://www.opensource.org/licenses/bsd-license.php
38  *             BSD License
39  * @link       http://pear.php.net/package/Date
40  * @since      [next version]
41  */
42
43 if ('@include_path@' != '@' . 'include_path' . '@') {
44     ini_set(
45         'include_path',
46         ini_get('include_path')
47         . PATH_SEPARATOR . '.'
48     );
49 } else {
50     ini_set(
51         'include_path',
52         realpath(dirname(__FILE__) . '/../')
53         . PATH_SEPARATOR . '.' . PATH_SEPARATOR
54         . ini_get('include_path')
55     );
56 }
57
58
59 /**
60  * Get the needed class
61  */
62 require_once 'Date.php';
63
64 /**
65  * Compare the test result to the expected result
66  *
67  * If the test fails, echo out the results.
68  *
69  * @param mixed $expect the scalar or array you expect from the test
70  * @param mixed $actual the scalar or array results from the test
71  * @param string $test_name the name of the test
72  *
73  * @return void
74  */
75 function compare($expect, $actual, $test_name)
76 {
77     if (is_array($expect)) {
78         if (count(array_diff($actual, $expect))) {
79             echo "$test_name failed.  Expect:\n";
80             print_r($expect);
81             echo "Actual:\n";
82             print_r($actual);
83         }
84     } else {
85         if ($expect !== $actual) {
86             echo "'$test_name' failed.  Expect: '$expect'  Actual: '$actual'\n";
87         }
88     }
89 }
90
91 if (php_sapi_name() != 'cli') {
92     echo "<pre>\n";
93 }
94
95
96 $date = new Date(
97     "1972-07-01 00:59:58.987654",
98     true
99 ); // count leap seconds
100 $date->setTZbyID("Europe/London");
101
102 $datetest = new Date($date);
103 $datetest->addSeconds(1, true);
104 compare("01/07/1972 00.59.59.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1");
105 $datetest = new Date($date);
106 $datetest->addSeconds(2, true);
107 compare("01/07/1972 00.59.60.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "2"); // leap second
108 $datetest = new Date($date);
109 $datetest->addSeconds(3, true);
110 compare("01/07/1972 01.00.00.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3");
111 $datetest = new Date($date);
112 $datetest->addSeconds(4, true);
113 compare("01/07/1972 01.00.01.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "4");
114 $datetest = new Date($date);
115 $datetest->addSeconds(5, true);
116 compare("01/07/1972 01.00.02.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "5");
117 $datetest = new Date($date);
118 $datetest->addSeconds(6, true);
119 compare("01/07/1972 01.00.03.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "6");
120 $datetest = new Date($date);
121 $datetest->addSeconds(7, true);
122 compare("01/07/1972 01.00.04.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7");
123 $datetest = new Date($date);
124 $datetest->addSeconds(8, true);
125 compare("01/07/1972 01.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "8");
126 $datetest = new Date($date);
127 $datetest->addSeconds(9, true);
128 compare("01/07/1972 01.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "9");
129 $datetest = new Date($date);
130 $datetest->addSeconds(10, true);
131 compare("01/07/1972 01.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "10");
132 $datetest = new Date($date);
133 $datetest->addSeconds(60, true);
134 compare("01/07/1972 01.00.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "60");
135 $datetest = new Date($date);
136 $datetest->addSeconds(3599, true);
137 compare("01/07/1972 01.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3599");
138 $datetest = new Date($date);
139 $datetest->addSeconds(3600, true);
140 compare("01/07/1972 01.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3600");
141 $datetest = new Date($date);
142 $datetest->addSeconds(3601, true);
143 compare("01/07/1972 01.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3601");
144 $datetest = new Date($date);
145 $datetest->addSeconds(7199, true);
146 compare("01/07/1972 02.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7199");
147 $datetest = new Date($date);
148 $datetest->addSeconds(7200, true);
149 compare("01/07/1972 02.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7200");
150 $datetest = new Date($date);
151 $datetest->addSeconds(7201, true);
152 compare("01/07/1972 02.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7201");
153 $datetest = new Date($date);
154 $datetest->addSeconds(86400, true);
155 compare("02/07/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "86400");
156 $datetest = new Date($date);
157 $datetest->addSeconds(864000, true);
158 compare("11/07/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "864000");
159 $datetest = new Date($date);
160 $datetest->addSeconds(8640000, true);
161 compare("09/10/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "8640000");
162 $datetest = new Date($date);
163 $datetest->addSeconds(31622400, true);
164 compare("02/07/1973 00.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "31622400"); // 2 leap seconds
165 $datetest = new Date($date);
166 $datetest->addSeconds(63244800, true);
167 compare("03/07/1974 00.59.55.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "63244800"); // 3 leap seconds
168 $datetest = new Date($date);
169 $datetest->addSeconds(94867200, true);
170 compare("04/07/1975 00.59.54.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "94867200"); // 4 leap seconds
171 $datetest = new Date($date);
172 $datetest->addSeconds(126489600, true);
173 compare("04/07/1976 00.59.53.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "126489600"); // etc.
174 $datetest = new Date($date);
175 $datetest->addSeconds(158112000, true);
176 compare("05/07/1977 00.59.52.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "158112000");
177 $datetest = new Date($date);
178 $datetest->addSeconds(189734400, true);
179 compare("06/07/1978 00.59.51.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "189734400");
180 $datetest = new Date($date);
181 $datetest->addSeconds(221356800, true);
182 compare("07/07/1979 00.59.50.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "221356800");
183 $datetest = new Date($date);
184 $datetest->addSeconds(252979200, true);
185 compare("07/07/1980 00.59.49.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "252979200");
186 $datetest = new Date($date);
187 $datetest->addSeconds(284601600, true);
188 compare("08/07/1981 00.59.48.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "284601600"); // leap second in June 1981
189 $datetest = new Date($date);
190 $datetest->addSeconds(316224000, true);
191 compare("09/07/1982 00.59.47.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "316224000");
192 $datetest = new Date($date);
193 $datetest->addSeconds(347846400, true);
194 compare("10/07/1983 00.59.46.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "347846400");
195 $datetest = new Date($date);
196 $datetest->addSeconds(379468800, true);
197 compare("10/07/1984 00.59.46.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "379468800"); // no leap second in 1984
198 $datetest = new Date($date);
199 $datetest->addSeconds(411091200, true);
200 compare("11/07/1985 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "411091200"); // leap second in June 1985
201 $datetest = new Date($date);
202 $datetest->addSeconds(442713600, true);
203 compare("12/07/1986 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "442713600"); // no leap second in 1986
204 $datetest = new Date($date);
205 $datetest->addSeconds(474336000, true);
206 compare("13/07/1987 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "474336000");
207 $datetest = new Date($date);
208 $datetest->addSeconds(505958400, true);
209 compare("13/07/1988 00.59.44.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "505958400"); // leap second in Dec 1987
210 $datetest = new Date($date);
211 $datetest->addSeconds(537580800, true);
212 compare("14/07/1989 00.59.44.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "537580800");
213 $datetest = new Date($date);
214 $datetest->addSeconds(569203200, true);
215 compare("15/07/1990 00.59.43.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "569203200");
216 $datetest = new Date($date);
217 $datetest->addSeconds(600825600, true);
218 compare("16/07/1991 00.59.42.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "600825600");
219 $datetest = new Date($date);
220 $datetest->addSeconds(632448000, true);
221 compare("16/07/1992 00.59.41.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "632448000");
222 $datetest = new Date($date);
223 $datetest->addSeconds(664070400, true);
224 compare("17/07/1993 00.59.40.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "664070400");
225 $datetest = new Date($date);
226 $datetest->addSeconds(695692800, true);
227 compare("18/07/1994 00.59.39.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "695692800");
228 $datetest = new Date($date);
229 $datetest->addSeconds(727315200, true);
230 compare("19/07/1995 00.59.39.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "727315200");
231 $datetest = new Date($date);
232 $datetest->addSeconds(758937600, true);
233 compare("19/07/1996 00.59.38.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "758937600");
234 $datetest = new Date($date);
235 $datetest->addSeconds(790560000, true);
236 compare("20/07/1997 00.59.37.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "790560000");
237 $datetest = new Date($date);
238 $datetest->addSeconds(822182400, true);
239 compare("21/07/1998 00.59.37.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "822182400");
240 $datetest = new Date($date);
241 $datetest->addSeconds(853804800, true);
242 compare("22/07/1999 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "853804800");
243 $datetest = new Date($date);
244 $datetest->addSeconds(885427200, true);
245 compare("22/07/2000 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "885427200");
246 $datetest = new Date($date);
247 $datetest->addSeconds(917049600, true);
248 compare("23/07/2001 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "917049600");
249 $datetest = new Date($date);
250 $datetest->addSeconds(948672000, true);
251 compare("24/07/2002 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "948672000");
252 $datetest = new Date($date);
253 $datetest->addSeconds(980294400, true);
254 compare("25/07/2003 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "980294400");
255 $datetest = new Date($date);
256 $datetest->addSeconds(1011916800, true);
257 compare("25/07/2004 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1011916800");
258 $datetest = new Date($date);
259 $datetest->addSeconds(1043539200, true);
260 compare("26/07/2005 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1043539200");
261 $datetest = new Date($date);
262 $datetest->addSeconds(1075161600, true);
263 compare("27/07/2006 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1075161600"); // 23rd leap second in Dec 2005
264 $datetest = new Date($date);
265 $datetest->addSeconds(1106784000, true);
266 compare("28/07/2007 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1106784000");
267 $datetest = new Date($date);
268 $datetest->addSeconds(1138406400, true);
269 compare("28/07/2008 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1138406400");
270 $datetest = new Date($date);
271 $datetest->addSeconds(1170028800, true);
272 compare("29/07/2009 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1170028800");
273
274
275 $date->setDate("2006-01-01 00:00:05.987654");
276
277 $datetest = new Date($date);
278 $datetest->addSeconds(-1, true);
279 compare("01/01/2006 00.00.04.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1");
280 $datetest = new Date($date);
281 $datetest->addSeconds(-2, true);
282 compare("01/01/2006 00.00.03.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-2");
283 $datetest = new Date($date);
284 $datetest->addSeconds(-3, true);
285 compare("01/01/2006 00.00.02.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3");
286 $datetest = new Date($date);
287 $datetest->addSeconds(-4, true);
288 compare("01/01/2006 00.00.01.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-4");
289 $datetest = new Date($date);
290 $datetest->addSeconds(-5, true);
291 compare("01/01/2006 00.00.00.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-5");
292 $datetest = new Date($date);
293 $datetest->addSeconds(-6, true);
294 compare("31/12/2005 23.59.60.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-6"); // leap second
295 $datetest = new Date($date);
296 $datetest->addSeconds(-7, true);
297 compare("31/12/2005 23.59.59.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7");
298 $datetest = new Date($date);
299 $datetest->addSeconds(-8, true);
300 compare("31/12/2005 23.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-8");
301 $datetest = new Date($date);
302 $datetest->addSeconds(-9, true);
303 compare("31/12/2005 23.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-9");
304 $datetest = new Date($date);
305 $datetest->addSeconds(-10, true);
306 compare("31/12/2005 23.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-10");
307 $datetest = new Date($date);
308 $datetest->addSeconds(-60, true);
309 compare("31/12/2005 23.59.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-60");
310 $datetest = new Date($date);
311 $datetest->addSeconds(-3599, true);
312 compare("31/12/2005 23.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3599");
313 $datetest = new Date($date);
314 $datetest->addSeconds(-3600, true);
315 compare("31/12/2005 23.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3600");
316 $datetest = new Date($date);
317 $datetest->addSeconds(-3601, true);
318 compare("31/12/2005 23.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3601");
319 $datetest = new Date($date);
320 $datetest->addSeconds(-7199, true);
321 compare("31/12/2005 22.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7199");
322 $datetest = new Date($date);
323 $datetest->addSeconds(-7200, true);
324 compare("31/12/2005 22.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7200");
325 $datetest = new Date($date);
326 $datetest->addSeconds(-7201, true);
327 compare("31/12/2005 22.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7201");
328 $datetest = new Date($date);
329 $datetest->addSeconds(-86400, true);
330 compare("31/12/2005 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-86400");
331 $datetest = new Date($date);
332 $datetest->addSeconds(-864000, true);
333 compare("22/12/2005 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-864000");
334 $datetest = new Date($date);
335 $datetest->addSeconds(-8640000, true);
336 compare("23/09/2005 01.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-8640000");
337 $datetest = new Date($date);
338 $datetest->addSeconds(-31622400, true);
339 compare("31/12/2004 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-31622400");
340 $datetest = new Date($date);
341 $datetest->addSeconds(-63244800, true);
342 compare("31/12/2003 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-63244800");
343 $datetest = new Date($date);
344 $datetest->addSeconds(-94867200, true);
345 compare("30/12/2002 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-94867200");
346 $datetest = new Date($date);
347 $datetest->addSeconds(-126489600, true);
348 compare("29/12/2001 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-126489600");
349 $datetest = new Date($date);
350 $datetest->addSeconds(-158112000, true);
351 compare("28/12/2000 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-158112000");
352 $datetest = new Date($date);
353 $datetest->addSeconds(-189734400, true);
354 compare("28/12/1999 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-189734400");
355 $datetest = new Date($date);
356 $datetest->addSeconds(-221356800, true);
357 compare("27/12/1998 00.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-221356800"); // 2 leap seconds
358 $datetest = new Date($date);
359 $datetest->addSeconds(-252979200, true);
360 compare("26/12/1997 00.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-252979200");
361 $datetest = new Date($date);
362 $datetest->addSeconds(-284601600, true);
363 compare("25/12/1996 00.00.08.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-284601600"); // leap second in June 1997
364 $datetest = new Date($date);
365 $datetest->addSeconds(-316224000, true);
366 compare("25/12/1995 00.00.09.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-316224000"); // leap second in Dec 1995
367 $datetest = new Date($date);
368 $datetest->addSeconds(-347846400, true);
369 compare("24/12/1994 00.00.09.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-347846400");
370 $datetest = new Date($date);
371 $datetest->addSeconds(-379468800, true);
372 compare("23/12/1993 00.00.10.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-379468800"); // leap second in June 1994
373 $datetest = new Date($date);
374 $datetest->addSeconds(-411091200, true);
375 compare("22/12/1992 00.00.11.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-411091200"); // leap second in June 1993
376 $datetest = new Date($date);
377 $datetest->addSeconds(-442713600, true);
378 compare("22/12/1991 00.00.12.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-442713600"); // leap second in June 1992
379 $datetest = new Date($date);
380 $datetest->addSeconds(-474336000, true);
381 compare("21/12/1990 00.00.13.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-474336000"); // leap second in Dec 1990
382 $datetest = new Date($date);
383 $datetest->addSeconds(-505958400, true);
384 compare("20/12/1989 00.00.14.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-505958400"); // leap second in Dec 1989
385 $datetest = new Date($date);
386 $datetest->addSeconds(-537580800, true);
387 compare("19/12/1988 00.00.14.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-537580800");
388 $datetest = new Date($date);
389 $datetest->addSeconds(-569203200, true);
390 compare("19/12/1987 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-569203200"); // leap second in Dec 1987
391 $datetest = new Date($date);
392 $datetest->addSeconds(-600825600, true);
393 compare("18/12/1986 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-600825600");
394 $datetest = new Date($date);
395 $datetest->addSeconds(-632448000, true);
396 compare("17/12/1985 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-632448000");
397 $datetest = new Date($date);
398 $datetest->addSeconds(-664070400, true);
399 compare("16/12/1984 00.00.16.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-664070400"); // leap second in June 1985
400 $datetest = new Date($date);
401 $datetest->addSeconds(-695692800, true);
402 compare("16/12/1983 00.00.16.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-695692800");
403 $datetest = new Date($date);
404 $datetest->addSeconds(-727315200, true);
405 compare("15/12/1982 00.00.17.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-727315200");
406 $datetest = new Date($date);
407 $datetest->addSeconds(-758937600, true);
408 compare("14/12/1981 00.00.18.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-758937600");
409 $datetest = new Date($date);
410 $datetest->addSeconds(-790560000, true);
411 compare("13/12/1980 00.00.19.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-790560000");
412 $datetest = new Date($date);
413 $datetest->addSeconds(-822182400, true);
414 compare("13/12/1979 00.00.20.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-822182400");
415 $datetest = new Date($date);
416 $datetest->addSeconds(-853804800, true);
417 compare("12/12/1978 00.00.21.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-853804800");
418 $datetest = new Date($date);
419 $datetest->addSeconds(-885427200, true);
420 compare("11/12/1977 00.00.22.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-885427200");
421 $datetest = new Date($date);
422 $datetest->addSeconds(-917049600, true);
423 compare("10/12/1976 00.00.23.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-917049600");
424 $datetest = new Date($date);
425 $datetest->addSeconds(-948672000, true);
426 compare("10/12/1975 00.00.24.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-948672000");
427 $datetest = new Date($date);
428 $datetest->addSeconds(-980294400, true);
429 compare("09/12/1974 00.00.25.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-980294400");
430 $datetest = new Date($date);
431 $datetest->addSeconds(-1011916800, true);
432 compare("08/12/1973 00.00.26.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1011916800");
433 $datetest = new Date($date);
434 $datetest->addSeconds(-1043539200, true);
435 compare("07/12/1972 00.00.27.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1043539200");
436 $datetest = new Date($date);
437 $datetest->addSeconds(-1075161600, true);
438 compare("07/12/1971 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1075161600"); // 23 leap seconds
439 $datetest = new Date($date);
440 $datetest->addSeconds(-1106784000, true);
441 compare("06/12/1970 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1106784000");
442 $datetest = new Date($date);
443 $datetest->addSeconds(-1138406400, true);
444 compare("05/12/1969 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1138406400");
445 $datetest = new Date($date);
446 $datetest->addSeconds(-1170028800, true);
447 compare("04/12/1968 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1170028800");