448 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			448 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
 | 
						|
 | 
						|
/**
 | 
						|
 * Tests for the Date_Calc::addSeconds() function
 | 
						|
 *
 | 
						|
 * Any individual tests that fail will have their name, expected result
 | 
						|
 * and actual result printed out.  So seeing no output when executing
 | 
						|
 * this file is a good thing.
 | 
						|
 *
 | 
						|
 * Can be run via CLI or a web server.
 | 
						|
 *
 | 
						|
 * This test senses whether it is from an installation of PEAR::Date or if
 | 
						|
 * it's from CVS or a .tar file.  If it's an installed version, use the
 | 
						|
 * installed version of Date.  Otherwise, use the local development
 | 
						|
 * copy of Date.
 | 
						|
 *
 | 
						|
 * PHP versions 4 and 5
 | 
						|
 *
 | 
						|
 * LICENSE:
 | 
						|
 *
 | 
						|
 * Copyright (c) 2007 C.A. Woodcock <c01234@netcomuk.co.uk>
 | 
						|
 * All rights reserved.
 | 
						|
 *
 | 
						|
 * This source file is subject to the New BSD license that is bundled
 | 
						|
 * with this package in the file LICENSE.txt.
 | 
						|
 * It is also available through the world-wide-web at this URL:
 | 
						|
 * http://www.opensource.org/licenses/bsd-license.php
 | 
						|
 * If you did not receive a copy of the license and are unable to
 | 
						|
 * obtain it through the world-wide-web, please send an email
 | 
						|
 * to pear-dev@lists.php.net so we can send you a copy immediately.
 | 
						|
 *
 | 
						|
 * @category   Date and Time
 | 
						|
 * @package    Date
 | 
						|
 * @author     C.A. Woodcock <c01234@netcomuk.co.uk>
 | 
						|
 * @copyright  Copyright (c) 2007 C.A. Woodcock <c01234@netcomuk.co.uk>
 | 
						|
 * @license    http://www.opensource.org/licenses/bsd-license.php
 | 
						|
 *             BSD License
 | 
						|
 * @link       http://pear.php.net/package/Date
 | 
						|
 * @since      [next version]
 | 
						|
 */
 | 
						|
 | 
						|
if ('@include_path@' != '@' . 'include_path' . '@') {
 | 
						|
    ini_set(
 | 
						|
        'include_path',
 | 
						|
        ini_get('include_path')
 | 
						|
        . PATH_SEPARATOR . '.'
 | 
						|
    );
 | 
						|
} else {
 | 
						|
    ini_set(
 | 
						|
        'include_path',
 | 
						|
        realpath(dirname(__FILE__) . '/../')
 | 
						|
        . PATH_SEPARATOR . '.' . PATH_SEPARATOR
 | 
						|
        . ini_get('include_path')
 | 
						|
    );
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * Get the needed class
 | 
						|
 */
 | 
						|
require_once 'Date.php';
 | 
						|
 | 
						|
/**
 | 
						|
 * Compare the test result to the expected result
 | 
						|
 *
 | 
						|
 * If the test fails, echo out the results.
 | 
						|
 *
 | 
						|
 * @param mixed $expect the scalar or array you expect from the test
 | 
						|
 * @param mixed $actual the scalar or array results from the test
 | 
						|
 * @param string $test_name the name of the test
 | 
						|
 *
 | 
						|
 * @return void
 | 
						|
 */
 | 
						|
function compare($expect, $actual, $test_name)
 | 
						|
{
 | 
						|
    if (is_array($expect)) {
 | 
						|
        if (count(array_diff($actual, $expect))) {
 | 
						|
            echo "$test_name failed.  Expect:\n";
 | 
						|
            print_r($expect);
 | 
						|
            echo "Actual:\n";
 | 
						|
            print_r($actual);
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        if ($expect !== $actual) {
 | 
						|
            echo "'$test_name' failed.  Expect: '$expect'  Actual: '$actual'\n";
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (php_sapi_name() != 'cli') {
 | 
						|
    echo "<pre>\n";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
$date = new Date(
 | 
						|
    "1972-07-01 00:59:58.987654",
 | 
						|
    true
 | 
						|
); // count leap seconds
 | 
						|
$date->setTZbyID("Europe/London");
 | 
						|
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1, true);
 | 
						|
compare("01/07/1972 00.59.59.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(2, true);
 | 
						|
compare("01/07/1972 00.59.60.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "2"); // leap second
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(3, true);
 | 
						|
compare("01/07/1972 01.00.00.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(4, true);
 | 
						|
compare("01/07/1972 01.00.01.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "4");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(5, true);
 | 
						|
compare("01/07/1972 01.00.02.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "5");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(6, true);
 | 
						|
compare("01/07/1972 01.00.03.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "6");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(7, true);
 | 
						|
compare("01/07/1972 01.00.04.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(8, true);
 | 
						|
compare("01/07/1972 01.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "8");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(9, true);
 | 
						|
compare("01/07/1972 01.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "9");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(10, true);
 | 
						|
compare("01/07/1972 01.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "10");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(60, true);
 | 
						|
compare("01/07/1972 01.00.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "60");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(3599, true);
 | 
						|
compare("01/07/1972 01.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3599");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(3600, true);
 | 
						|
compare("01/07/1972 01.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(3601, true);
 | 
						|
compare("01/07/1972 01.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "3601");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(7199, true);
 | 
						|
compare("01/07/1972 02.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7199");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(7200, true);
 | 
						|
compare("01/07/1972 02.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(7201, true);
 | 
						|
compare("01/07/1972 02.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "7201");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(86400, true);
 | 
						|
compare("02/07/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "86400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(864000, true);
 | 
						|
compare("11/07/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "864000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(8640000, true);
 | 
						|
compare("09/10/1972 00.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "8640000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(31622400, true);
 | 
						|
compare("02/07/1973 00.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "31622400"); // 2 leap seconds
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(63244800, true);
 | 
						|
compare("03/07/1974 00.59.55.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "63244800"); // 3 leap seconds
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(94867200, true);
 | 
						|
compare("04/07/1975 00.59.54.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "94867200"); // 4 leap seconds
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(126489600, true);
 | 
						|
compare("04/07/1976 00.59.53.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "126489600"); // etc.
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(158112000, true);
 | 
						|
compare("05/07/1977 00.59.52.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "158112000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(189734400, true);
 | 
						|
compare("06/07/1978 00.59.51.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "189734400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(221356800, true);
 | 
						|
compare("07/07/1979 00.59.50.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "221356800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(252979200, true);
 | 
						|
compare("07/07/1980 00.59.49.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "252979200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(284601600, true);
 | 
						|
compare("08/07/1981 00.59.48.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "284601600"); // leap second in June 1981
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(316224000, true);
 | 
						|
compare("09/07/1982 00.59.47.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "316224000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(347846400, true);
 | 
						|
compare("10/07/1983 00.59.46.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "347846400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(379468800, true);
 | 
						|
compare("10/07/1984 00.59.46.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "379468800"); // no leap second in 1984
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(411091200, true);
 | 
						|
compare("11/07/1985 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "411091200"); // leap second in June 1985
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(442713600, true);
 | 
						|
compare("12/07/1986 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "442713600"); // no leap second in 1986
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(474336000, true);
 | 
						|
compare("13/07/1987 00.59.45.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "474336000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(505958400, true);
 | 
						|
compare("13/07/1988 00.59.44.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "505958400"); // leap second in Dec 1987
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(537580800, true);
 | 
						|
compare("14/07/1989 00.59.44.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "537580800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(569203200, true);
 | 
						|
compare("15/07/1990 00.59.43.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "569203200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(600825600, true);
 | 
						|
compare("16/07/1991 00.59.42.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "600825600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(632448000, true);
 | 
						|
compare("16/07/1992 00.59.41.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "632448000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(664070400, true);
 | 
						|
compare("17/07/1993 00.59.40.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "664070400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(695692800, true);
 | 
						|
compare("18/07/1994 00.59.39.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "695692800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(727315200, true);
 | 
						|
compare("19/07/1995 00.59.39.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "727315200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(758937600, true);
 | 
						|
compare("19/07/1996 00.59.38.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "758937600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(790560000, true);
 | 
						|
compare("20/07/1997 00.59.37.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "790560000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(822182400, true);
 | 
						|
compare("21/07/1998 00.59.37.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "822182400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(853804800, true);
 | 
						|
compare("22/07/1999 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "853804800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(885427200, true);
 | 
						|
compare("22/07/2000 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "885427200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(917049600, true);
 | 
						|
compare("23/07/2001 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "917049600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(948672000, true);
 | 
						|
compare("24/07/2002 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "948672000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(980294400, true);
 | 
						|
compare("25/07/2003 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "980294400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1011916800, true);
 | 
						|
compare("25/07/2004 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1011916800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1043539200, true);
 | 
						|
compare("26/07/2005 00.59.36.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1043539200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1075161600, true);
 | 
						|
compare("27/07/2006 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1075161600"); // 23rd leap second in Dec 2005
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1106784000, true);
 | 
						|
compare("28/07/2007 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1106784000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1138406400, true);
 | 
						|
compare("28/07/2008 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1138406400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(1170028800, true);
 | 
						|
compare("29/07/2009 00.59.35.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "1170028800");
 | 
						|
 | 
						|
 | 
						|
$date->setDate("2006-01-01 00:00:05.987654");
 | 
						|
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1, true);
 | 
						|
compare("01/01/2006 00.00.04.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-2, true);
 | 
						|
compare("01/01/2006 00.00.03.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-2");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-3, true);
 | 
						|
compare("01/01/2006 00.00.02.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-4, true);
 | 
						|
compare("01/01/2006 00.00.01.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-4");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-5, true);
 | 
						|
compare("01/01/2006 00.00.00.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-5");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-6, true);
 | 
						|
compare("31/12/2005 23.59.60.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-6"); // leap second
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-7, true);
 | 
						|
compare("31/12/2005 23.59.59.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-8, true);
 | 
						|
compare("31/12/2005 23.59.58.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-8");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-9, true);
 | 
						|
compare("31/12/2005 23.59.57.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-9");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-10, true);
 | 
						|
compare("31/12/2005 23.59.56.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-10");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-60, true);
 | 
						|
compare("31/12/2005 23.59.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-60");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-3599, true);
 | 
						|
compare("31/12/2005 23.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3599");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-3600, true);
 | 
						|
compare("31/12/2005 23.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-3601, true);
 | 
						|
compare("31/12/2005 23.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-3601");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-7199, true);
 | 
						|
compare("31/12/2005 22.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7199");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-7200, true);
 | 
						|
compare("31/12/2005 22.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-7201, true);
 | 
						|
compare("31/12/2005 22.00.05.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-7201");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-86400, true);
 | 
						|
compare("31/12/2005 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-86400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-864000, true);
 | 
						|
compare("22/12/2005 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-864000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-8640000, true);
 | 
						|
compare("23/09/2005 01.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-8640000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-31622400, true);
 | 
						|
compare("31/12/2004 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-31622400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-63244800, true);
 | 
						|
compare("31/12/2003 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-63244800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-94867200, true);
 | 
						|
compare("30/12/2002 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-94867200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-126489600, true);
 | 
						|
compare("29/12/2001 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-126489600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-158112000, true);
 | 
						|
compare("28/12/2000 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-158112000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-189734400, true);
 | 
						|
compare("28/12/1999 00.00.06.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-189734400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-221356800, true);
 | 
						|
compare("27/12/1998 00.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-221356800"); // 2 leap seconds
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-252979200, true);
 | 
						|
compare("26/12/1997 00.00.07.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-252979200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-284601600, true);
 | 
						|
compare("25/12/1996 00.00.08.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-284601600"); // leap second in June 1997
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-316224000, true);
 | 
						|
compare("25/12/1995 00.00.09.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-316224000"); // leap second in Dec 1995
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-347846400, true);
 | 
						|
compare("24/12/1994 00.00.09.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-347846400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-379468800, true);
 | 
						|
compare("23/12/1993 00.00.10.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-379468800"); // leap second in June 1994
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-411091200, true);
 | 
						|
compare("22/12/1992 00.00.11.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-411091200"); // leap second in June 1993
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-442713600, true);
 | 
						|
compare("22/12/1991 00.00.12.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-442713600"); // leap second in June 1992
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-474336000, true);
 | 
						|
compare("21/12/1990 00.00.13.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-474336000"); // leap second in Dec 1990
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-505958400, true);
 | 
						|
compare("20/12/1989 00.00.14.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-505958400"); // leap second in Dec 1989
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-537580800, true);
 | 
						|
compare("19/12/1988 00.00.14.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-537580800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-569203200, true);
 | 
						|
compare("19/12/1987 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-569203200"); // leap second in Dec 1987
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-600825600, true);
 | 
						|
compare("18/12/1986 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-600825600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-632448000, true);
 | 
						|
compare("17/12/1985 00.00.15.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-632448000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-664070400, true);
 | 
						|
compare("16/12/1984 00.00.16.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-664070400"); // leap second in June 1985
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-695692800, true);
 | 
						|
compare("16/12/1983 00.00.16.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-695692800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-727315200, true);
 | 
						|
compare("15/12/1982 00.00.17.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-727315200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-758937600, true);
 | 
						|
compare("14/12/1981 00.00.18.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-758937600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-790560000, true);
 | 
						|
compare("13/12/1980 00.00.19.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-790560000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-822182400, true);
 | 
						|
compare("13/12/1979 00.00.20.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-822182400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-853804800, true);
 | 
						|
compare("12/12/1978 00.00.21.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-853804800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-885427200, true);
 | 
						|
compare("11/12/1977 00.00.22.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-885427200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-917049600, true);
 | 
						|
compare("10/12/1976 00.00.23.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-917049600");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-948672000, true);
 | 
						|
compare("10/12/1975 00.00.24.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-948672000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-980294400, true);
 | 
						|
compare("09/12/1974 00.00.25.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-980294400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1011916800, true);
 | 
						|
compare("08/12/1973 00.00.26.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1011916800");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1043539200, true);
 | 
						|
compare("07/12/1972 00.00.27.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1043539200");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1075161600, true);
 | 
						|
compare("07/12/1971 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1075161600"); // 23 leap seconds
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1106784000, true);
 | 
						|
compare("06/12/1970 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1106784000");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1138406400, true);
 | 
						|
compare("05/12/1969 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1138406400");
 | 
						|
$datetest = new Date($date);
 | 
						|
$datetest->addSeconds(-1170028800, true);
 | 
						|
compare("04/12/1968 00.00.28.98765", $datetest->formatLikeSQL("DD/MM/YYYY HH.MI.SS.FFFFF"), "-1170028800");
 |