mirror of
https://github.com/php/php-src.git
synced 2025-08-20 01:14:28 +02:00
Add extensive tests for DateTime::diff(), add() and sub().
This commit is contained in:
parent
9b567fea6a
commit
7ea26a58bc
13 changed files with 2052 additions and 0 deletions
29
ext/date/tests/DateTime_diff_add_sub-absolute.phpt
Normal file
29
ext/date/tests/DateTime_diff_add_sub-absolute.phpt
Normal file
|
@ -0,0 +1,29 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- absolute
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Absolute
|
||||
*/
|
||||
echo "test_absolute_7: ";
|
||||
examine_diff('2009-01-14', '2009-01-07', 'P+0Y0M7DT0H0M0S', 7, true);
|
||||
|
||||
echo "test_absolute_negative_7: ";
|
||||
examine_diff('2009-01-07', '2009-01-14', 'P+0Y0M7DT0H0M0S', 7, true);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_absolute_7: FWD: 2009-01-14 00:00:00 EST - 2009-01-07 00:00:00 EST = **P+0Y0M7DT0H0M0S** | BACK: 2009-01-07 00:00:00 EST + P+0Y0M7DT0H0M0S = **2009-01-14 00:00:00 EST** | DAYS: **7**
|
||||
test_absolute_negative_7: FWD: 2009-01-07 00:00:00 EST - 2009-01-14 00:00:00 EST = **P+0Y0M7DT0H0M0S** | BACK: 2009-01-14 00:00:00 EST - P+0Y0M7DT0H0M0S = **2009-01-07 00:00:00 EST** | DAYS: **7**
|
89
ext/date/tests/DateTime_diff_add_sub-dates.phpt
Normal file
89
ext/date/tests/DateTime_diff_add_sub-dates.phpt
Normal file
|
@ -0,0 +1,89 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- dates
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Particular days
|
||||
*/
|
||||
echo "test__7: ";
|
||||
examine_diff('2009-01-14', '2009-01-07', 'P+0Y0M7DT0H0M0S', 7);
|
||||
|
||||
echo "test_years_positive__7_by_0_day: ";
|
||||
examine_diff('2007-02-07', '2000-02-07', 'P+7Y0M0DT0H0M0S', 2557);
|
||||
|
||||
echo "test_years_positive__7_by_1_day: ";
|
||||
examine_diff('2007-02-08', '2000-02-07', 'P+7Y0M1DT0H0M0S', 2558);
|
||||
|
||||
echo "test_years_positive__6_shy_1_day: ";
|
||||
examine_diff('2007-02-06', '2000-02-07', 'P+6Y11M30DT0H0M0S', 2556);
|
||||
|
||||
echo "test_years_positive__7_by_1_month: ";
|
||||
examine_diff('2007-03-07', '2000-02-07', 'P+7Y1M0DT0H0M0S', 2585);
|
||||
|
||||
echo "test_years_positive__6_shy_1_month: ";
|
||||
examine_diff('2007-01-07', '2000-02-07', 'P+6Y11M0DT0H0M0S', 2526);
|
||||
|
||||
echo "test_years_positive__7_by_1_month_split_newyear: ";
|
||||
examine_diff('2007-01-07', '1999-12-07', 'P+7Y1M0DT0H0M0S', 2588);
|
||||
|
||||
echo "test_years_positive__6_shy_1_month_split_newyear: ";
|
||||
examine_diff('2006-12-07', '2000-01-07', 'P+6Y11M0DT0H0M0S', 2526);
|
||||
|
||||
|
||||
/*
|
||||
* Particular days, negative
|
||||
*/
|
||||
echo "test_negative__7: ";
|
||||
examine_diff('2009-01-07', '2009-01-14', 'P-0Y0M7DT0H0M0S', 7);
|
||||
|
||||
echo "test_years_negative__7_by_0_day: ";
|
||||
examine_diff('2000-02-07', '2007-02-07', 'P-7Y0M0DT0H0M0S', 2557);
|
||||
|
||||
echo "test_years_negative__7_by_1_day: ";
|
||||
examine_diff('2000-02-07', '2007-02-08', 'P-7Y0M1DT0H0M0S', 2558);
|
||||
|
||||
echo "test_years_negative__6_shy_1_day: ";
|
||||
examine_diff('2000-02-07', '2007-02-06', 'P-6Y11M28DT0H0M0S', 2556);
|
||||
|
||||
echo "test_years_negative__7_by_1_month: ";
|
||||
examine_diff('2000-02-07', '2007-03-07', 'P-7Y1M0DT0H0M0S', 2585);
|
||||
|
||||
echo "test_years_negative__6_shy_1_month: ";
|
||||
examine_diff('2000-02-07', '2007-01-07', 'P-6Y11M0DT0H0M0S', 2526);
|
||||
|
||||
echo "test_years_negative__7_by_1_month_split_newyear: ";
|
||||
examine_diff('1999-12-07', '2007-01-07', 'P-7Y1M0DT0H0M0S', 2588);
|
||||
|
||||
echo "test_years_negative__6_shy_1_month_split_newyear: ";
|
||||
examine_diff('2000-01-07', '2006-12-07', 'P-6Y11M0DT0H0M0S', 2526);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test__7: FWD: 2009-01-14 00:00:00 EST - 2009-01-07 00:00:00 EST = **P+0Y0M7DT0H0M0S** | BACK: 2009-01-07 00:00:00 EST + P+0Y0M7DT0H0M0S = **2009-01-14 00:00:00 EST** | DAYS: **7**
|
||||
test_years_positive__7_by_0_day: FWD: 2007-02-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y0M0DT0H0M0S** | BACK: 2000-02-07 00:00:00 EST + P+7Y0M0DT0H0M0S = **2007-02-07 00:00:00 EST** | DAYS: **2557**
|
||||
test_years_positive__7_by_1_day: FWD: 2007-02-08 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y0M1DT0H0M0S** | BACK: 2000-02-07 00:00:00 EST + P+7Y0M1DT0H0M0S = **2007-02-08 00:00:00 EST** | DAYS: **2558**
|
||||
test_years_positive__6_shy_1_day: FWD: 2007-02-06 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+6Y11M30DT0H0M0S** | BACK: 2000-02-07 00:00:00 EST + P+6Y11M30DT0H0M0S = **2007-02-06 00:00:00 EST** | DAYS: **2556**
|
||||
test_years_positive__7_by_1_month: FWD: 2007-03-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+7Y1M0DT0H0M0S** | BACK: 2000-02-07 00:00:00 EST + P+7Y1M0DT0H0M0S = **2007-03-07 00:00:00 EST** | DAYS: **2585**
|
||||
test_years_positive__6_shy_1_month: FWD: 2007-01-07 00:00:00 EST - 2000-02-07 00:00:00 EST = **P+6Y11M0DT0H0M0S** | BACK: 2000-02-07 00:00:00 EST + P+6Y11M0DT0H0M0S = **2007-01-07 00:00:00 EST** | DAYS: **2526**
|
||||
test_years_positive__7_by_1_month_split_newyear: FWD: 2007-01-07 00:00:00 EST - 1999-12-07 00:00:00 EST = **P+7Y1M0DT0H0M0S** | BACK: 1999-12-07 00:00:00 EST + P+7Y1M0DT0H0M0S = **2007-01-07 00:00:00 EST** | DAYS: **2588**
|
||||
test_years_positive__6_shy_1_month_split_newyear: FWD: 2006-12-07 00:00:00 EST - 2000-01-07 00:00:00 EST = **P+6Y11M0DT0H0M0S** | BACK: 2000-01-07 00:00:00 EST + P+6Y11M0DT0H0M0S = **2006-12-07 00:00:00 EST** | DAYS: **2526**
|
||||
test_negative__7: FWD: 2009-01-07 00:00:00 EST - 2009-01-14 00:00:00 EST = **P-0Y0M7DT0H0M0S** | BACK: 2009-01-14 00:00:00 EST + P-0Y0M7DT0H0M0S = **2009-01-07 00:00:00 EST** | DAYS: **7**
|
||||
test_years_negative__7_by_0_day: FWD: 2000-02-07 00:00:00 EST - 2007-02-07 00:00:00 EST = **P-7Y0M0DT0H0M0S** | BACK: 2007-02-07 00:00:00 EST + P-7Y0M0DT0H0M0S = **2000-02-07 00:00:00 EST** | DAYS: **2557**
|
||||
test_years_negative__7_by_1_day: FWD: 2000-02-07 00:00:00 EST - 2007-02-08 00:00:00 EST = **P-7Y0M1DT0H0M0S** | BACK: 2007-02-08 00:00:00 EST + P-7Y0M1DT0H0M0S = **2000-02-07 00:00:00 EST** | DAYS: **2558**
|
||||
test_years_negative__6_shy_1_day: FWD: 2000-02-07 00:00:00 EST - 2007-02-06 00:00:00 EST = **P-6Y11M28DT0H0M0S** | BACK: 2007-02-06 00:00:00 EST + P-6Y11M28DT0H0M0S = **2000-02-07 00:00:00 EST** | DAYS: **2556**
|
||||
test_years_negative__7_by_1_month: FWD: 2000-02-07 00:00:00 EST - 2007-03-07 00:00:00 EST = **P-7Y1M0DT0H0M0S** | BACK: 2007-03-07 00:00:00 EST + P-7Y1M0DT0H0M0S = **2000-02-07 00:00:00 EST** | DAYS: **2585**
|
||||
test_years_negative__6_shy_1_month: FWD: 2000-02-07 00:00:00 EST - 2007-01-07 00:00:00 EST = **P-6Y11M0DT0H0M0S** | BACK: 2007-01-07 00:00:00 EST + P-6Y11M0DT0H0M0S = **2000-02-07 00:00:00 EST** | DAYS: **2526**
|
||||
test_years_negative__7_by_1_month_split_newyear: FWD: 1999-12-07 00:00:00 EST - 2007-01-07 00:00:00 EST = **P-7Y1M0DT0H0M0S** | BACK: 2007-01-07 00:00:00 EST + P-7Y1M0DT0H0M0S = **1999-12-07 00:00:00 EST** | DAYS: **2588**
|
||||
test_years_negative__6_shy_1_month_split_newyear: FWD: 2000-01-07 00:00:00 EST - 2006-12-07 00:00:00 EST = **P-6Y11M0DT0H0M0S** | BACK: 2006-12-07 00:00:00 EST + P-6Y11M0DT0H0M0S = **2000-01-07 00:00:00 EST** | DAYS: **2526**
|
246
ext/date/tests/DateTime_diff_add_sub-fall-type2-type2.phpt
Normal file
246
ext/date/tests/DateTime_diff_add_sub-fall-type2-type2.phpt
Normal file
|
@ -0,0 +1,246 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- fall type2 type2
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Fall, Zone Type 2 to Zone Type 2
|
||||
*
|
||||
* + prev: the day before the transition day 2010-11-06 18:38:28 EDT
|
||||
* + dt: daylight time on transition day 2010-11-07 00:10:20 EDT
|
||||
* + redodt: daylight time in the redo period 2010-11-07 01:12:33 EDT
|
||||
* + redost: standard time in the redo period 2010-11-07 01:14:44 EST
|
||||
* + st: standard time on the transition day 2010-11-07 03:16:55 EST
|
||||
* + post: the day after the transition day 2010-11-08 19:59:59 EST
|
||||
*/
|
||||
echo "test_time_fall_type2_prev_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-10-04 02:18:48 EDT'); // sp prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 33);
|
||||
|
||||
echo "test_time_fall_type2_prev_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:15:35 EDT'); // sp dt, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 05:19:56 EST'); // sp st, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-08 18:57:55 EST'); // sp post, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_fall_type2_prev_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** | BACK: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** | DAYS: **33**
|
||||
test_time_fall_type2_prev_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** | DAYS: **2**
|
||||
test_time_fall_type2_dt_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** | BACK: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type2_dt: FWD: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_redodt_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type2_redodt: FWD: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_redost_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type2_redost: FWD: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_st_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_st_type2_st: FWD: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** | DAYS: **0**
|
||||
test_time_fall_type2_st_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** | DAYS: **2**
|
||||
test_time_fall_type2_post_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** | DAYS: **1**
|
||||
test_time_fall_type2_post_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** | DAYS: **1**
|
||||
test_time_fall_type2_post_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** | BACK: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** | DAYS: **0**
|
258
ext/date/tests/DateTime_diff_add_sub-fall-type2-type3.phpt
Normal file
258
ext/date/tests/DateTime_diff_add_sub-fall-type2-type3.phpt
Normal file
|
@ -0,0 +1,258 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- fall type2 type3
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Fall, Zone Type 2 to Zone Type 3
|
||||
*
|
||||
* + prev: the day before the transition day 2010-11-06 18:38:28 EDT
|
||||
* + dt: daylight time on transition day 2010-11-07 00:10:20 EDT
|
||||
* + redodt: daylight time in the redo period 2010-11-07 01:12:33 EDT
|
||||
* + redost: standard time in the redo period 2010-11-07 01:14:44 EST
|
||||
* + st: standard time on the transition day 2010-11-07 03:16:55 EST
|
||||
* + post: the day after the transition day 2010-11-08 19:59:59 EST
|
||||
*/
|
||||
echo "test_time_fall_type2_prev_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-10-04 02:18:48 EDT'); // sp prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 33);
|
||||
|
||||
echo "test_time_fall_type2_prev_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type2_prev_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:15:35'); // sp dt, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type2_dt_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redodt_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_redost_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 05:19:56'); // sp st, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_fall_type2_st_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type2_post_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-08 18:57:55 EST'); // sp post, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_fall_type2_prev_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** | BACK: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** | DAYS: **33**
|
||||
test_time_fall_type2_prev_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_prev_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** | DAYS: **2**
|
||||
test_time_fall_type2_dt_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** | BACK: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type3_dt: FWD: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_dt_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_redodt_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type3_redodt: FWD: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redodt_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_redost_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type3_redost: FWD: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type2_redost_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_st_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type2_st_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type2_st_type3_st: FWD: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** | DAYS: **0**
|
||||
test_time_fall_type2_st_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** | DAYS: **2**
|
||||
test_time_fall_type2_post_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** | DAYS: **1**
|
||||
test_time_fall_type2_post_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** | DAYS: **1**
|
||||
test_time_fall_type2_post_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** | DAYS: **1**
|
||||
test_time_fall_type2_post_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** | BACK: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** | DAYS: **0**
|
260
ext/date/tests/DateTime_diff_add_sub-fall-type3-type2.phpt
Normal file
260
ext/date/tests/DateTime_diff_add_sub-fall-type3-type2.phpt
Normal file
|
@ -0,0 +1,260 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- fall type3 type2
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Fall, Zone Type 3 to Zone Type 2
|
||||
*
|
||||
* + prev: the day before the transition day 2010-11-06 18:38:28 EDT
|
||||
* + dt: daylight time on transition day 2010-11-07 00:10:20 EDT
|
||||
* + redodt: daylight time in the redo period 2010-11-07 01:12:33 EDT
|
||||
* + redost: standard time in the redo period 2010-11-07 01:14:44 EST
|
||||
* + st: standard time on the transition day 2010-11-07 03:16:55 EST
|
||||
* + post: the day after the transition day 2010-11-08 19:59:59 EST
|
||||
*/
|
||||
echo "test_time_fall_type3_prev_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-10-04 02:18:48'); // sp prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 33);
|
||||
|
||||
echo "test_time_fall_type3_prev_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:15:35 EDT'); // sp dt, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 05:19:56 EST'); // sp st, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28 EDT'); // prev, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55 EST'); // st, zt2
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type2_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59 EST'); // post, zt2
|
||||
$start = new DateTime('2010-11-08 18:57:55'); // sp post, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_fall_type3_prev_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** | BACK: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** | DAYS: **33**
|
||||
test_time_fall_type3_prev_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** | DAYS: **2**
|
||||
test_time_fall_type3_dt_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** | BACK: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type2_dt: FWD: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_redodt_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type2_redodt: FWD: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_redost_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type2_redost: FWD: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_st_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_st_type2_st: FWD: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** | DAYS: **0**
|
||||
test_time_fall_type3_st_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type2_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** | DAYS: **2**
|
||||
test_time_fall_type3_post_type2_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** | DAYS: **1**
|
||||
test_time_fall_type3_post_type2_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** | DAYS: **1**
|
||||
test_time_fall_type3_post_type2_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type2_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type2_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** | BACK: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** | DAYS: **0**
|
270
ext/date/tests/DateTime_diff_add_sub-fall-type3-type3.phpt
Normal file
270
ext/date/tests/DateTime_diff_add_sub-fall-type3-type3.phpt
Normal file
|
@ -0,0 +1,270 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- fall type3 type3
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Fall, Zone Type 3 to Zone Type 3
|
||||
*
|
||||
* + prev: the day before the transition day 2010-11-06 18:38:28
|
||||
* + dt: daylight time on transition day 2010-11-07 00:10:20
|
||||
* + redodt: daylight time in the redo period 2010-11-07 01:12:33 EDT, + TZ
|
||||
* + redost: standard time in the redo period 2010-11-07 01:14:44 EST, + TZ
|
||||
* + st: standard time on the transition day 2010-11-07 03:16:55
|
||||
* + post: the day after the transition day 2010-11-08 19:59:59
|
||||
*/
|
||||
echo "test_time_fall_type3_prev_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-10-04 02:18:48'); // sp prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 33);
|
||||
|
||||
echo "test_time_fall_type3_prev_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type3_prev_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:15:35'); // sp dt, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type3_dt_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT6H34M5S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M13S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:15:35 EDT'); // sp redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H3M2S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redodt_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H36M16S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H4M24S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT1H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:16:54 EST'); // sp redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H2M10S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_redost_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$start->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT9H38M27S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT4H6M35S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT3H4M22S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H2M11S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 05:19:56'); // sp st, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_fall_type3_st_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_prev: ";
|
||||
$end = new DateTime('2010-11-06 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_dt: ";
|
||||
$end = new DateTime('2010-11-07 00:10:20'); // dt, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT20H49M39S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_redodt: ";
|
||||
$end = new DateTime('2010-11-07 01:12:33 EDT'); // redodt, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT19H47M26S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_redost: ";
|
||||
$end = new DateTime('2010-11-07 01:14:44 EST'); // redost, zt2
|
||||
$end->setTimezone(new DateTimeZone('America/New_York')); // zt2 -> zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H45M15S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_st: ";
|
||||
$end = new DateTime('2010-11-07 03:16:55'); // st, zt3
|
||||
$start = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_fall_type3_post_type3_post: ";
|
||||
$end = new DateTime('2010-11-08 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-11-08 18:57:55'); // sp post, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_fall_type3_prev_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-10-04 02:18:48 EDT = **P+0Y1M2DT16H19M40S** | BACK: 2010-10-04 02:18:48 EDT + P+0Y1M2DT16H19M40S = **2010-11-06 18:38:28 EDT** | DAYS: **33**
|
||||
test_time_fall_type3_prev_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT5H31M52S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT5H31M52S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT6H34M5S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT6H34M5S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT7H36M16S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT7H36M16S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M0DT9H38M27S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M0DT9H38M27S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_prev_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-06 18:38:28 EDT = **P+0Y0M2DT1H21M31S** | BACK: 2010-11-06 18:38:28 EDT + P+0Y0M2DT1H21M31S = **2010-11-08 19:59:59 EST** | DAYS: **2**
|
||||
test_time_fall_type3_dt_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 00:10:20 EDT = **P-0Y0M0DT5H31M52S** | BACK: 2010-11-07 00:10:20 EDT + P-0Y0M0DT5H31M52S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type3_dt: FWD: 2010-11-07 00:15:35 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT0H5M15S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT0H5M15S = **2010-11-07 00:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT1H2M13S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT1H2M13S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT2H4M24S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT2H4M24S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M0DT4H6M35S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M0DT4H6M35S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_dt_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 00:10:20 EDT = **P+0Y0M1DT20H49M39S** | BACK: 2010-11-07 00:10:20 EDT + P+0Y0M1DT20H49M39S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_redodt_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT6H34M5S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT6H34M5S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:12:33 EDT = **P-0Y0M0DT1H2M13S** | BACK: 2010-11-07 01:12:33 EDT + P-0Y0M0DT1H2M13S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type3_redodt: FWD: 2010-11-07 01:15:35 EDT - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT0H3M2S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT0H3M2S = **2010-11-07 01:15:35 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT1H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M0DT3H4M22S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M0DT3H4M22S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redodt_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:12:33 EDT = **P+0Y0M1DT19H47M26S** | BACK: 2010-11-07 01:12:33 EDT + P+0Y0M1DT19H47M26S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_redost_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT7H36M16S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT7H36M16S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT2H4M24S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT2H4M24S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 01:14:44 EST = **P-0Y0M0DT1H2M11S** | BACK: 2010-11-07 01:14:44 EST + P-0Y0M0DT1H2M11S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type3_redost: FWD: 2010-11-07 01:16:54 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT0H2M10S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT0H2M10S = **2010-11-07 01:16:54 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-07 01:14:44 EST = **P+0Y0M0DT2H2M11S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M0DT2H2M11S = **2010-11-07 03:16:55 EST** | DAYS: **0**
|
||||
test_time_fall_type3_redost_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 01:14:44 EST = **P+0Y0M1DT18H45M15S** | BACK: 2010-11-07 01:14:44 EST + P+0Y0M1DT18H45M15S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_st_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT9H38M27S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT9H38M27S = **2010-11-06 18:38:28 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT4H6M35S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT4H6M35S = **2010-11-07 00:10:20 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-07 03:16:55 EST = **P-0Y0M0DT3H4M22S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT3H4M22S = **2010-11-07 01:12:33 EDT** | DAYS: **0**
|
||||
test_time_fall_type3_st_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-07 03:16:55 EST = **P-0Y0M0DT2H2M11S** | BACK: 2010-11-07 03:16:55 EST + P-0Y0M0DT2H2M11S = **2010-11-07 01:14:44 EST** | DAYS: **0**
|
||||
test_time_fall_type3_st_type3_st: FWD: 2010-11-07 05:19:56 EST - 2010-11-07 03:16:55 EST = **P+0Y0M0DT2H3M1S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M0DT2H3M1S = **2010-11-07 05:19:56 EST** | DAYS: **0**
|
||||
test_time_fall_type3_st_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-07 03:16:55 EST = **P+0Y0M1DT16H43M4S** | BACK: 2010-11-07 03:16:55 EST + P+0Y0M1DT16H43M4S = **2010-11-08 19:59:59 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type3_prev: FWD: 2010-11-06 18:38:28 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M2DT1H21M31S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M2DT1H21M31S = **2010-11-06 18:38:28 EDT** | DAYS: **2**
|
||||
test_time_fall_type3_post_type3_dt: FWD: 2010-11-07 00:10:20 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT20H49M39S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT20H49M39S = **2010-11-07 00:10:20 EDT** | DAYS: **1**
|
||||
test_time_fall_type3_post_type3_redodt: FWD: 2010-11-07 01:12:33 EDT - 2010-11-08 19:59:59 EST = **P-0Y0M1DT19H47M26S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT19H47M26S = **2010-11-07 01:12:33 EDT** | DAYS: **1**
|
||||
test_time_fall_type3_post_type3_redost: FWD: 2010-11-07 01:14:44 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT18H45M15S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT18H45M15S = **2010-11-07 01:14:44 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type3_st: FWD: 2010-11-07 03:16:55 EST - 2010-11-08 19:59:59 EST = **P-0Y0M1DT16H43M4S** | BACK: 2010-11-08 19:59:59 EST + P-0Y0M1DT16H43M4S = **2010-11-07 03:16:55 EST** | DAYS: **1**
|
||||
test_time_fall_type3_post_type3_post: FWD: 2010-11-08 19:59:59 EST - 2010-11-08 18:57:55 EST = **P+0Y0M0DT1H2M4S** | BACK: 2010-11-08 18:57:55 EST + P+0Y0M0DT1H2M4S = **2010-11-08 19:59:59 EST** | DAYS: **0**
|
281
ext/date/tests/DateTime_diff_add_sub-february.phpt
Normal file
281
ext/date/tests/DateTime_diff_add_sub-february.phpt
Normal file
|
@ -0,0 +1,281 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- february
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Check PHP bug 49081
|
||||
*/
|
||||
echo "test_bug_49081__1: ";
|
||||
examine_diff('2010-03-31', '2010-03-01', 'P+0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081__2: ";
|
||||
examine_diff('2010-04-01', '2010-03-01', 'P+0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081__3: ";
|
||||
examine_diff('2010-04-01', '2010-03-31', 'P+0Y0M1DT0H0M0S', 1);
|
||||
|
||||
echo "test_bug_49081__4: ";
|
||||
examine_diff('2010-04-29', '2010-03-31', 'P+0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081__5: ";
|
||||
examine_diff('2010-04-30', '2010-03-31', 'P+0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081__6: ";
|
||||
examine_diff('2010-04-30', '2010-03-30', 'P+0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081__7: ";
|
||||
examine_diff('2010-04-30', '2010-03-29', 'P+0Y1M1DT0H0M0S', 32);
|
||||
|
||||
echo "test_bug_49081__8: ";
|
||||
examine_diff('2010-01-29', '2010-01-01', 'P+0Y0M28DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081__9: ";
|
||||
examine_diff('2010-01-30', '2010-01-01', 'P+0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081__10: ";
|
||||
examine_diff('2010-01-31', '2010-01-01', 'P+0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081__11: ";
|
||||
examine_diff('2010-02-01', '2010-01-01', 'P+0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081__12: ";
|
||||
examine_diff('2010-02-01', '2010-01-31', 'P+0Y0M1DT0H0M0S', 1);
|
||||
|
||||
echo "test_bug_49081__13: ";
|
||||
examine_diff('2010-02-27', '2010-01-31', 'P+0Y0M27DT0H0M0S', 27);
|
||||
|
||||
echo "test_bug_49081__14: ";
|
||||
examine_diff('2010-02-28', '2010-01-31', 'P+0Y0M28DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081__15: ";
|
||||
examine_diff('2010-02-28', '2010-01-30', 'P+0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081__16: ";
|
||||
examine_diff('2010-02-28', '2010-01-29', 'P+0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081__17: ";
|
||||
examine_diff('2010-02-28', '2010-01-28', 'P+0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081__18: ";
|
||||
examine_diff('2010-02-28', '2010-01-27', 'P+0Y1M1DT0H0M0S', 32);
|
||||
|
||||
echo "test_bug_49081__19: ";
|
||||
examine_diff('2010-03-01', '2010-01-01', 'P+0Y2M0DT0H0M0S', 59);
|
||||
|
||||
echo "test_bug_49081__20: ";
|
||||
examine_diff('2010-03-01', '2010-01-31', 'P+0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081__21: ";
|
||||
examine_diff('2010-03-27', '2010-01-31', 'P+0Y1M24DT0H0M0S', 55);
|
||||
|
||||
echo "test_bug_49081__22: ";
|
||||
examine_diff('2010-03-28', '2010-01-31', 'P+0Y1M25DT0H0M0S', 56);
|
||||
|
||||
echo "test_bug_49081__23: ";
|
||||
examine_diff('2010-03-29', '2010-01-31', 'P+0Y1M26DT0H0M0S', 57);
|
||||
|
||||
echo "test_bug_49081__24: ";
|
||||
examine_diff('2010-03-30', '2010-01-31', 'P+0Y1M27DT0H0M0S', 58);
|
||||
|
||||
echo "test_bug_49081__25: ";
|
||||
examine_diff('2010-03-31', '2010-01-31', 'P+0Y2M0DT0H0M0S', 59);
|
||||
|
||||
echo "test_bug_49081__26: ";
|
||||
examine_diff('2010-03-31', '2010-01-30', 'P+0Y2M1DT0H0M0S', 60);
|
||||
|
||||
echo "test_bug_49081__27: ";
|
||||
examine_diff('2009-01-31', '2009-01-01', 'P+0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081__28: ";
|
||||
examine_diff('2010-03-27', '2010-02-28', 'P+0Y0M27DT0H0M0S', 27);
|
||||
|
||||
echo "test_bug_49081__29: ";
|
||||
examine_diff('2010-03-28', '2010-02-28', 'P+0Y1M0DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081__30: ";
|
||||
examine_diff('2010-03-29', '2010-02-28', 'P+0Y1M1DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081__31: ";
|
||||
examine_diff('2010-03-27', '2010-02-27', 'P+0Y1M0DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081__32: ";
|
||||
examine_diff('2010-03-27', '2010-02-26', 'P+0Y1M1DT0H0M0S', 29);
|
||||
|
||||
|
||||
/*
|
||||
* Check PHP bug 49081, negative
|
||||
*/
|
||||
echo "test_bug_49081_negative__1: ";
|
||||
examine_diff('2010-03-01', '2010-03-31', 'P-0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081_negative__2: ";
|
||||
examine_diff('2010-03-01', '2010-04-01', 'P-0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081_negative__3: ";
|
||||
examine_diff('2010-03-31', '2010-04-01', 'P-0Y0M1DT0H0M0S', 1);
|
||||
|
||||
echo "test_bug_49081_negative__4: ";
|
||||
examine_diff('2010-03-31', '2010-04-29', 'P-0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081_negative__5: ";
|
||||
examine_diff('2010-03-31', '2010-04-30', 'P-0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081_negative__6: ";
|
||||
examine_diff('2010-03-30', '2010-04-30', 'P-0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081_negative__7: ";
|
||||
examine_diff('2010-03-29', '2010-04-30', 'P-0Y1M1DT0H0M0S', 32);
|
||||
|
||||
echo "test_bug_49081_negative__8: ";
|
||||
examine_diff('2010-01-01', '2010-01-29', 'P-0Y0M28DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081_negative__9: ";
|
||||
examine_diff('2010-01-01', '2010-01-30', 'P-0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081_negative__10: ";
|
||||
examine_diff('2010-01-01', '2010-01-31', 'P-0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081_negative__11: ";
|
||||
examine_diff('2010-01-01', '2010-02-01', 'P-0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081_negative__12: ";
|
||||
examine_diff('2010-01-31', '2010-02-01', 'P-0Y0M1DT0H0M0S', 1);
|
||||
|
||||
echo "test_bug_49081_negative__13: ";
|
||||
examine_diff('2010-01-31', '2010-02-27', 'P-0Y0M27DT0H0M0S', 27);
|
||||
|
||||
echo "test_bug_49081_negative__14: ";
|
||||
examine_diff('2010-01-31', '2010-02-28', 'P-0Y0M28DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081_negative__15: ";
|
||||
examine_diff('2010-01-30', '2010-02-28', 'P-0Y0M29DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081_negative__16: ";
|
||||
examine_diff('2010-01-29', '2010-02-28', 'P-0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081_negative__17: ";
|
||||
examine_diff('2010-01-28', '2010-02-28', 'P-0Y1M0DT0H0M0S', 31);
|
||||
|
||||
echo "test_bug_49081_negative__18: ";
|
||||
examine_diff('2010-01-27', '2010-02-28', 'P-0Y1M1DT0H0M0S', 32);
|
||||
|
||||
echo "test_bug_49081_negative__19: ";
|
||||
examine_diff('2010-01-01', '2010-03-01', 'P-0Y2M0DT0H0M0S', 59);
|
||||
|
||||
echo "test_bug_49081_negative__20: ";
|
||||
examine_diff('2010-01-31', '2010-03-01', 'P-0Y1M1DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081_negative__21: ";
|
||||
examine_diff('2010-01-31', '2010-03-27', 'P-0Y1M27DT0H0M0S', 55);
|
||||
|
||||
echo "test_bug_49081_negative__22: ";
|
||||
examine_diff('2010-01-31', '2010-03-28', 'P-0Y1M28DT0H0M0S', 56);
|
||||
|
||||
echo "test_bug_49081_negative__23: ";
|
||||
examine_diff('2010-01-31', '2010-03-29', 'P-0Y1M29DT0H0M0S', 57);
|
||||
|
||||
echo "test_bug_49081_negative__24: ";
|
||||
examine_diff('2010-01-31', '2010-03-30', 'P-0Y1M30DT0H0M0S', 58);
|
||||
|
||||
echo "test_bug_49081_negative__25: ";
|
||||
examine_diff('2010-01-31', '2010-03-31', 'P-0Y2M0DT0H0M0S', 59);
|
||||
|
||||
echo "test_bug_49081_negative__26: ";
|
||||
examine_diff('2010-01-30', '2010-03-31', 'P-0Y2M1DT0H0M0S', 60);
|
||||
|
||||
echo "test_bug_49081_negative__27: ";
|
||||
examine_diff('2009-01-01', '2009-01-31', 'P-0Y0M30DT0H0M0S', 30);
|
||||
|
||||
echo "test_bug_49081_negative__28: ";
|
||||
examine_diff('2010-02-28', '2010-03-27', 'P-0Y0M27DT0H0M0S', 27);
|
||||
|
||||
echo "test_bug_49081_negative__29: ";
|
||||
examine_diff('2010-02-28', '2010-03-28', 'P-0Y1M0DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081_negative__30: ";
|
||||
examine_diff('2010-02-28', '2010-03-29', 'P-0Y1M1DT0H0M0S', 29);
|
||||
|
||||
echo "test_bug_49081_negative__31: ";
|
||||
examine_diff('2010-02-27', '2010-03-27', 'P-0Y1M0DT0H0M0S', 28);
|
||||
|
||||
echo "test_bug_49081_negative__32: ";
|
||||
examine_diff('2010-02-26', '2010-03-27', 'P-0Y1M1DT0H0M0S', 29);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_bug_49081__1: FWD: 2010-03-31 00:00:00 EDT - 2010-03-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** | BACK: 2010-03-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **30**
|
||||
test_bug_49081__2: FWD: 2010-04-01 00:00:00 EDT - 2010-03-01 00:00:00 EST = **P+0Y1M0DT0H0M0S** | BACK: 2010-03-01 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-04-01 00:00:00 EDT** | DAYS: **31**
|
||||
test_bug_49081__3: FWD: 2010-04-01 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M1DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P+0Y0M1DT0H0M0S = **2010-04-01 00:00:00 EDT** | DAYS: **1**
|
||||
test_bug_49081__4: FWD: 2010-04-29 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M29DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P+0Y0M29DT0H0M0S = **2010-04-29 00:00:00 EDT** | DAYS: **29**
|
||||
test_bug_49081__5: FWD: 2010-04-30 00:00:00 EDT - 2010-03-31 00:00:00 EDT = **P+0Y0M30DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P+0Y0M30DT0H0M0S = **2010-04-30 00:00:00 EDT** | DAYS: **30**
|
||||
test_bug_49081__6: FWD: 2010-04-30 00:00:00 EDT - 2010-03-30 00:00:00 EDT = **P+0Y1M0DT0H0M0S** | BACK: 2010-03-30 00:00:00 EDT + P+0Y1M0DT0H0M0S = **2010-04-30 00:00:00 EDT** | DAYS: **31**
|
||||
test_bug_49081__7: FWD: 2010-04-30 00:00:00 EDT - 2010-03-29 00:00:00 EDT = **P+0Y1M1DT0H0M0S** | BACK: 2010-03-29 00:00:00 EDT + P+0Y1M1DT0H0M0S = **2010-04-30 00:00:00 EDT** | DAYS: **32**
|
||||
test_bug_49081__8: FWD: 2010-01-29 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M28DT0H0M0S** | BACK: 2010-01-01 00:00:00 EST + P+0Y0M28DT0H0M0S = **2010-01-29 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081__9: FWD: 2010-01-30 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M29DT0H0M0S** | BACK: 2010-01-01 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081__10: FWD: 2010-01-31 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** | BACK: 2010-01-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081__11: FWD: 2010-02-01 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y1M0DT0H0M0S** | BACK: 2010-01-01 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-02-01 00:00:00 EST** | DAYS: **31**
|
||||
test_bug_49081__12: FWD: 2010-02-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M1DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y0M1DT0H0M0S = **2010-02-01 00:00:00 EST** | DAYS: **1**
|
||||
test_bug_49081__13: FWD: 2010-02-27 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M27DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y0M27DT0H0M0S = **2010-02-27 00:00:00 EST** | DAYS: **27**
|
||||
test_bug_49081__14: FWD: 2010-02-28 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M28DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y0M28DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081__15: FWD: 2010-02-28 00:00:00 EST - 2010-01-30 00:00:00 EST = **P+0Y0M29DT0H0M0S** | BACK: 2010-01-30 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081__16: FWD: 2010-02-28 00:00:00 EST - 2010-01-29 00:00:00 EST = **P+0Y0M30DT0H0M0S** | BACK: 2010-01-29 00:00:00 EST + P+0Y0M30DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081__17: FWD: 2010-02-28 00:00:00 EST - 2010-01-28 00:00:00 EST = **P+0Y1M0DT0H0M0S** | BACK: 2010-01-28 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **31**
|
||||
test_bug_49081__18: FWD: 2010-02-28 00:00:00 EST - 2010-01-27 00:00:00 EST = **P+0Y1M1DT0H0M0S** | BACK: 2010-01-27 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **32**
|
||||
test_bug_49081__19: FWD: 2010-03-01 00:00:00 EST - 2010-01-01 00:00:00 EST = **P+0Y2M0DT0H0M0S** | BACK: 2010-01-01 00:00:00 EST + P+0Y2M0DT0H0M0S = **2010-03-01 00:00:00 EST** | DAYS: **59**
|
||||
test_bug_49081__20: FWD: 2010-03-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P+0Y0M29DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y0M29DT0H0M0S = **2010-03-01 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081__21: FWD: 2010-03-27 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M24DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y1M24DT0H0M0S = **2010-03-27 00:00:00 EDT** | DAYS: **55**
|
||||
test_bug_49081__22: FWD: 2010-03-28 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M25DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y1M25DT0H0M0S = **2010-03-28 00:00:00 EDT** | DAYS: **56**
|
||||
test_bug_49081__23: FWD: 2010-03-29 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M26DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y1M26DT0H0M0S = **2010-03-29 00:00:00 EDT** | DAYS: **57**
|
||||
test_bug_49081__24: FWD: 2010-03-30 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y1M27DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y1M27DT0H0M0S = **2010-03-30 00:00:00 EDT** | DAYS: **58**
|
||||
test_bug_49081__25: FWD: 2010-03-31 00:00:00 EDT - 2010-01-31 00:00:00 EST = **P+0Y2M0DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P+0Y2M0DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **59**
|
||||
test_bug_49081__26: FWD: 2010-03-31 00:00:00 EDT - 2010-01-30 00:00:00 EST = **P+0Y2M1DT0H0M0S** | BACK: 2010-01-30 00:00:00 EST + P+0Y2M1DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **60**
|
||||
test_bug_49081__27: FWD: 2009-01-31 00:00:00 EST - 2009-01-01 00:00:00 EST = **P+0Y0M30DT0H0M0S** | BACK: 2009-01-01 00:00:00 EST + P+0Y0M30DT0H0M0S = **2009-01-31 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081__28: FWD: 2010-03-27 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y0M27DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P+0Y0M27DT0H0M0S = **2010-03-27 00:00:00 EDT** | DAYS: **27**
|
||||
test_bug_49081__29: FWD: 2010-03-28 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y1M0DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-03-28 00:00:00 EDT** | DAYS: **28**
|
||||
test_bug_49081__30: FWD: 2010-03-29 00:00:00 EDT - 2010-02-28 00:00:00 EST = **P+0Y1M1DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** | DAYS: **29**
|
||||
test_bug_49081__31: FWD: 2010-03-27 00:00:00 EDT - 2010-02-27 00:00:00 EST = **P+0Y1M0DT0H0M0S** | BACK: 2010-02-27 00:00:00 EST + P+0Y1M0DT0H0M0S = **2010-03-27 00:00:00 EDT** | DAYS: **28**
|
||||
test_bug_49081__32: FWD: 2010-03-27 00:00:00 EDT - 2010-02-26 00:00:00 EST = **P+0Y1M1DT0H0M0S** | BACK: 2010-02-26 00:00:00 EST + P+0Y1M1DT0H0M0S = **2010-03-27 00:00:00 EDT** | DAYS: **29**
|
||||
test_bug_49081_negative__1: FWD: 2010-03-01 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y0M30DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P-0Y0M30DT0H0M0S = **2010-03-01 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081_negative__2: FWD: 2010-03-01 00:00:00 EST - 2010-04-01 00:00:00 EDT = **P-0Y1M0DT0H0M0S** | BACK: 2010-04-01 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-03-01 00:00:00 EST** | DAYS: **31**
|
||||
test_bug_49081_negative__3: FWD: 2010-03-31 00:00:00 EDT - 2010-04-01 00:00:00 EDT = **P-0Y0M1DT0H0M0S** | BACK: 2010-04-01 00:00:00 EDT + P-0Y0M1DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **1**
|
||||
test_bug_49081_negative__4: FWD: 2010-03-31 00:00:00 EDT - 2010-04-29 00:00:00 EDT = **P-0Y0M29DT0H0M0S** | BACK: 2010-04-29 00:00:00 EDT + P-0Y0M29DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **29**
|
||||
test_bug_49081_negative__5: FWD: 2010-03-31 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y0M30DT0H0M0S** | BACK: 2010-04-30 00:00:00 EDT + P-0Y0M30DT0H0M0S = **2010-03-31 00:00:00 EDT** | DAYS: **30**
|
||||
test_bug_49081_negative__6: FWD: 2010-03-30 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y1M0DT0H0M0S** | BACK: 2010-04-30 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-03-30 00:00:00 EDT** | DAYS: **31**
|
||||
test_bug_49081_negative__7: FWD: 2010-03-29 00:00:00 EDT - 2010-04-30 00:00:00 EDT = **P-0Y1M1DT0H0M0S** | BACK: 2010-04-30 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-03-29 00:00:00 EDT** | DAYS: **32**
|
||||
test_bug_49081_negative__8: FWD: 2010-01-01 00:00:00 EST - 2010-01-29 00:00:00 EST = **P-0Y0M28DT0H0M0S** | BACK: 2010-01-29 00:00:00 EST + P-0Y0M28DT0H0M0S = **2010-01-01 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081_negative__9: FWD: 2010-01-01 00:00:00 EST - 2010-01-30 00:00:00 EST = **P-0Y0M29DT0H0M0S** | BACK: 2010-01-30 00:00:00 EST + P-0Y0M29DT0H0M0S = **2010-01-01 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081_negative__10: FWD: 2010-01-01 00:00:00 EST - 2010-01-31 00:00:00 EST = **P-0Y0M30DT0H0M0S** | BACK: 2010-01-31 00:00:00 EST + P-0Y0M30DT0H0M0S = **2010-01-01 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081_negative__11: FWD: 2010-01-01 00:00:00 EST - 2010-02-01 00:00:00 EST = **P-0Y1M0DT0H0M0S** | BACK: 2010-02-01 00:00:00 EST + P-0Y1M0DT0H0M0S = **2010-01-01 00:00:00 EST** | DAYS: **31**
|
||||
test_bug_49081_negative__12: FWD: 2010-01-31 00:00:00 EST - 2010-02-01 00:00:00 EST = **P-0Y0M1DT0H0M0S** | BACK: 2010-02-01 00:00:00 EST + P-0Y0M1DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **1**
|
||||
test_bug_49081_negative__13: FWD: 2010-01-31 00:00:00 EST - 2010-02-27 00:00:00 EST = **P-0Y0M27DT0H0M0S** | BACK: 2010-02-27 00:00:00 EST + P-0Y0M27DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **27**
|
||||
test_bug_49081_negative__14: FWD: 2010-01-31 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M28DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P-0Y0M28DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081_negative__15: FWD: 2010-01-30 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M29DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P-0Y0M29DT0H0M0S = **2010-01-30 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081_negative__16: FWD: 2010-01-29 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y0M30DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P-0Y0M30DT0H0M0S = **2010-01-29 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081_negative__17: FWD: 2010-01-28 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y1M0DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P-0Y1M0DT0H0M0S = **2010-01-28 00:00:00 EST** | DAYS: **31**
|
||||
test_bug_49081_negative__18: FWD: 2010-01-27 00:00:00 EST - 2010-02-28 00:00:00 EST = **P-0Y1M1DT0H0M0S** | BACK: 2010-02-28 00:00:00 EST + P-0Y1M1DT0H0M0S = **2010-01-27 00:00:00 EST** | DAYS: **32**
|
||||
test_bug_49081_negative__19: FWD: 2010-01-01 00:00:00 EST - 2010-03-01 00:00:00 EST = **P-0Y2M0DT0H0M0S** | BACK: 2010-03-01 00:00:00 EST + P-0Y2M0DT0H0M0S = **2010-01-01 00:00:00 EST** | DAYS: **59**
|
||||
test_bug_49081_negative__20: FWD: 2010-01-31 00:00:00 EST - 2010-03-01 00:00:00 EST = **P-0Y1M1DT0H0M0S** | BACK: 2010-03-01 00:00:00 EST + P-0Y1M1DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081_negative__21: FWD: 2010-01-31 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M27DT0H0M0S** | BACK: 2010-03-27 00:00:00 EDT + P-0Y1M27DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **55**
|
||||
test_bug_49081_negative__22: FWD: 2010-01-31 00:00:00 EST - 2010-03-28 00:00:00 EDT = **P-0Y1M28DT0H0M0S** | BACK: 2010-03-28 00:00:00 EDT + P-0Y1M28DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **56**
|
||||
test_bug_49081_negative__23: FWD: 2010-01-31 00:00:00 EST - 2010-03-29 00:00:00 EDT = **P-0Y1M29DT0H0M0S** | BACK: 2010-03-29 00:00:00 EDT + P-0Y1M29DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **57**
|
||||
test_bug_49081_negative__24: FWD: 2010-01-31 00:00:00 EST - 2010-03-30 00:00:00 EDT = **P-0Y1M30DT0H0M0S** | BACK: 2010-03-30 00:00:00 EDT + P-0Y1M30DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **58**
|
||||
test_bug_49081_negative__25: FWD: 2010-01-31 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y2M0DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P-0Y2M0DT0H0M0S = **2010-01-31 00:00:00 EST** | DAYS: **59**
|
||||
test_bug_49081_negative__26: FWD: 2010-01-30 00:00:00 EST - 2010-03-31 00:00:00 EDT = **P-0Y2M1DT0H0M0S** | BACK: 2010-03-31 00:00:00 EDT + P-0Y2M1DT0H0M0S = **2010-01-30 00:00:00 EST** | DAYS: **60**
|
||||
test_bug_49081_negative__27: FWD: 2009-01-01 00:00:00 EST - 2009-01-31 00:00:00 EST = **P-0Y0M30DT0H0M0S** | BACK: 2009-01-31 00:00:00 EST + P-0Y0M30DT0H0M0S = **2009-01-01 00:00:00 EST** | DAYS: **30**
|
||||
test_bug_49081_negative__28: FWD: 2010-02-28 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y0M27DT0H0M0S** | BACK: 2010-03-27 00:00:00 EDT + P-0Y0M27DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **27**
|
||||
test_bug_49081_negative__29: FWD: 2010-02-28 00:00:00 EST - 2010-03-28 00:00:00 EDT = **P-0Y1M0DT0H0M0S** | BACK: 2010-03-28 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081_negative__30: FWD: 2010-02-28 00:00:00 EST - 2010-03-29 00:00:00 EDT = **P-0Y1M1DT0H0M0S** | BACK: 2010-03-29 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-02-28 00:00:00 EST** | DAYS: **29**
|
||||
test_bug_49081_negative__31: FWD: 2010-02-27 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M0DT0H0M0S** | BACK: 2010-03-27 00:00:00 EDT + P-0Y1M0DT0H0M0S = **2010-02-27 00:00:00 EST** | DAYS: **28**
|
||||
test_bug_49081_negative__32: FWD: 2010-02-26 00:00:00 EST - 2010-03-27 00:00:00 EDT = **P-0Y1M1DT0H0M0S** | BACK: 2010-03-27 00:00:00 EDT + P-0Y1M1DT0H0M0S = **2010-02-26 00:00:00 EST** | DAYS: **29**
|
45
ext/date/tests/DateTime_diff_add_sub-massive.phpt
Normal file
45
ext/date/tests/DateTime_diff_add_sub-massive.phpt
Normal file
|
@ -0,0 +1,45 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- massive
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Massive dates
|
||||
*/
|
||||
echo "test_massive_positive: ";
|
||||
$end = new DateTime;
|
||||
$end->setDate(333333, 1, 1);
|
||||
$end->setTime(16, 18, 02);
|
||||
|
||||
$start = new DateTime;
|
||||
$start->setDate(-333333, 1, 1);
|
||||
$start->setTime(16, 18, 02);
|
||||
|
||||
examine_diff($end, $start, 'P+666666Y0M0DT0H0M0S', 243494757);
|
||||
|
||||
echo "test_massive_negative: ";
|
||||
$end = new DateTime;
|
||||
$end->setDate(-333333, 1, 1);
|
||||
$end->setTime(16, 18, 02);
|
||||
|
||||
$start = new DateTime;
|
||||
$start->setDate(333333, 1, 1);
|
||||
$start->setTime(16, 18, 02);
|
||||
|
||||
examine_diff($end, $start, 'P-666666Y0M0DT0H0M0S', 243494757);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_massive_positive: FWD: 333333-01-01 16:18:02 EST - -333333-01-01 16:18:02 EST = **P+666666Y0M0DT0H0M0S** | BACK: -333333-01-01 16:18:02 EST + P+666666Y0M0DT0H0M0S = **333333-01-01 16:18:02 EST** | DAYS: **243494757**
|
||||
test_massive_negative: FWD: -333333-01-01 16:18:02 EST - 333333-01-01 16:18:02 EST = **P-666666Y0M0DT0H0M0S** | BACK: 333333-01-01 16:18:02 EST + P-666666Y0M0DT0H0M0S = **-333333-01-01 16:18:02 EST** | DAYS: **243494757**
|
124
ext/date/tests/DateTime_diff_add_sub-spring-type2-type2.phpt
Normal file
124
ext/date/tests/DateTime_diff_add_sub-spring-type2-type2.phpt
Normal file
|
@ -0,0 +1,124 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- spring type2 type2
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Spring, Zone Type 2 to Zone Type 2
|
||||
*
|
||||
* + prev: the day before the transition day 2010-03-13 18:38:28 EST
|
||||
* + st: standard time on transition day 2010-03-14 00:10:20 EST
|
||||
* + dt: daylight time on the transition day 2010-03-14 03:16:55 EDT
|
||||
* + post: the day after the transition day 2010-03-15 19:59:59 EDT
|
||||
*/
|
||||
echo "test_time_spring_type2_prev_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-02-11 02:18:48 EST'); // sp prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 30);
|
||||
|
||||
echo "test_time_spring_type2_prev_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type2_prev_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type2_prev_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type2_st_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:15:35 EST'); // sp st, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type2_dt_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 05:19:56 EDT'); // sp dt, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type2_post_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-15 18:57:55 EDT'); // sp post, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_spring_type2_prev_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** | BACK: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** | DAYS: **30**
|
||||
test_time_spring_type2_prev_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type2_prev_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_prev_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** | DAYS: **2**
|
||||
test_time_spring_type2_st_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** | BACK: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type2_st_type2_st: FWD: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** | DAYS: **0**
|
||||
test_time_spring_type2_st_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_st_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_dt_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type2_dt: FWD: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_post_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** | DAYS: **2**
|
||||
test_time_spring_type2_post_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** | DAYS: **1**
|
||||
test_time_spring_type2_post_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_post_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** | BACK: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** | DAYS: **0**
|
124
ext/date/tests/DateTime_diff_add_sub-spring-type2-type3.phpt
Normal file
124
ext/date/tests/DateTime_diff_add_sub-spring-type2-type3.phpt
Normal file
|
@ -0,0 +1,124 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- spring type2 type3
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Spring, Zone Type 2 to Zone Type 3
|
||||
*
|
||||
* + prev: the day before the transition day 2010-03-13 18:38:28 EST
|
||||
* + st: standard time on transition day 2010-03-14 00:10:20 EST
|
||||
* + dt: daylight time on the transition day 2010-03-14 03:16:55 EDT
|
||||
* + post: the day after the transition day 2010-03-15 19:59:59 EDT
|
||||
*/
|
||||
echo "test_time_spring_type2_prev_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-02-11 02:18:48 EST'); // sp prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 30);
|
||||
|
||||
echo "test_time_spring_type2_prev_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type2_prev_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type2_prev_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type2_st_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:15:35'); // sp st, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type2_st_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type2_dt_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 05:19:56'); // sp dt, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_spring_type2_dt_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type2_post_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type2_post_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-15 18:57:55 EDT'); // sp post, zt2
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_spring_type2_prev_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** | BACK: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** | DAYS: **30**
|
||||
test_time_spring_type2_prev_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type2_prev_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_prev_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** | DAYS: **2**
|
||||
test_time_spring_type2_st_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** | BACK: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type2_st_type3_st: FWD: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** | DAYS: **0**
|
||||
test_time_spring_type2_st_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_st_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_dt_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type3_dt: FWD: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** | DAYS: **0**
|
||||
test_time_spring_type2_dt_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_post_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** | DAYS: **2**
|
||||
test_time_spring_type2_post_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** | DAYS: **1**
|
||||
test_time_spring_type2_post_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** | DAYS: **1**
|
||||
test_time_spring_type2_post_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** | BACK: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** | DAYS: **0**
|
124
ext/date/tests/DateTime_diff_add_sub-spring-type3-type2.phpt
Normal file
124
ext/date/tests/DateTime_diff_add_sub-spring-type3-type2.phpt
Normal file
|
@ -0,0 +1,124 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- spring type3 type2
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Spring, Zone Type 3 to Zone Type 2
|
||||
*
|
||||
* + prev: the day before the transition day 2010-03-13 18:38:28 EST
|
||||
* + st: standard time on transition day 2010-03-14 00:10:20 EST
|
||||
* + dt: daylight time on the transition day 2010-03-14 03:16:55 EDT
|
||||
* + post: the day after the transition day 2010-03-15 19:59:59 EDT
|
||||
*/
|
||||
echo "test_time_spring_type3_prev_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-02-11 02:18:48'); // sp prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 30);
|
||||
|
||||
echo "test_time_spring_type3_prev_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type3_prev_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type3_prev_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type3_st_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:15:35 EST'); // sp st, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type3_dt_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 05:19:56 EDT'); // sp dt, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type2_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28 EST'); // prev, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type3_post_type2_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20 EST'); // st, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type2_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55 EDT'); // dt, zt2
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type2_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59 EDT'); // post, zt2
|
||||
$start = new DateTime('2010-03-15 18:57:55'); // sp post, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_spring_type3_prev_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** | BACK: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** | DAYS: **30**
|
||||
test_time_spring_type3_prev_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type3_prev_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_prev_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** | DAYS: **2**
|
||||
test_time_spring_type3_st_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** | BACK: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type3_st_type2_st: FWD: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** | DAYS: **0**
|
||||
test_time_spring_type3_st_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_st_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_dt_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type2_dt: FWD: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_post_type2_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** | DAYS: **2**
|
||||
test_time_spring_type3_post_type2_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** | DAYS: **1**
|
||||
test_time_spring_type3_post_type2_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_post_type2_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** | BACK: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** | DAYS: **0**
|
124
ext/date/tests/DateTime_diff_add_sub-spring-type3-type3.phpt
Normal file
124
ext/date/tests/DateTime_diff_add_sub-spring-type3-type3.phpt
Normal file
|
@ -0,0 +1,124 @@
|
|||
--TEST--
|
||||
DateTime::diff() add() sub() -- spring type3 type3
|
||||
--CREDITS--
|
||||
Daniel Convissor <danielc@php.net>
|
||||
--XFAIL--
|
||||
PHP < 5.4 has bugs
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Note: test names match method names in a set of PHPUnit tests
|
||||
* in a userland package. Please be so kind as to leave them.
|
||||
*/
|
||||
|
||||
require './examine_diff.inc';
|
||||
date_default_timezone_set('America/New_York');
|
||||
|
||||
|
||||
/*
|
||||
* Time, Spring, Zone Type 3 to Zone Type 3
|
||||
*
|
||||
* + prev: the day before the transition day 2010-03-13 18:38:28
|
||||
* + st: standard time on transition day 2010-03-14 00:10:20
|
||||
* + dt: daylight time on the transition day 2010-03-14 03:16:55
|
||||
* + post: the day after the transition day 2010-03-15 19:59:59
|
||||
*/
|
||||
echo "test_time_spring_type3_prev_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-02-11 02:18:48'); // sp prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y1M2DT16H19M40S', 30);
|
||||
|
||||
echo "test_time_spring_type3_prev_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type3_prev_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type3_prev_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type3_st_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT5H31M52S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:15:35'); // sp st, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT0H5M15S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type3_st_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type3_dt_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT7H38M27S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M0DT2H6M35S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 05:19:56'); // sp dt, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT2H3M1S', 0);
|
||||
|
||||
echo "test_time_spring_type3_dt_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type3_prev: ";
|
||||
$end = new DateTime('2010-03-13 18:38:28'); // prev, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M2DT1H21M31S', 2);
|
||||
|
||||
echo "test_time_spring_type3_post_type3_st: ";
|
||||
$end = new DateTime('2010-03-14 00:10:20'); // st, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT18H49M39S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type3_dt: ";
|
||||
$end = new DateTime('2010-03-14 03:16:55'); // dt, zt3
|
||||
$start = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
examine_diff($end, $start, 'P-0Y0M1DT16H43M4S', 1);
|
||||
|
||||
echo "test_time_spring_type3_post_type3_post: ";
|
||||
$end = new DateTime('2010-03-15 19:59:59'); // post, zt3
|
||||
$start = new DateTime('2010-03-15 18:57:55'); // sp post, zt3
|
||||
examine_diff($end, $start, 'P+0Y0M0DT1H2M4S', 0);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
test_time_spring_type3_prev_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-02-11 02:18:48 EST = **P+0Y1M2DT16H19M40S** | BACK: 2010-02-11 02:18:48 EST + P+0Y1M2DT16H19M40S = **2010-03-13 18:38:28 EST** | DAYS: **30**
|
||||
test_time_spring_type3_prev_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-13 18:38:28 EST = **P+0Y0M0DT5H31M52S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT5H31M52S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type3_prev_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M0DT7H38M27S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M0DT7H38M27S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_prev_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-13 18:38:28 EST = **P+0Y0M2DT1H21M31S** | BACK: 2010-03-13 18:38:28 EST + P+0Y0M2DT1H21M31S = **2010-03-15 19:59:59 EDT** | DAYS: **2**
|
||||
test_time_spring_type3_st_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 00:10:20 EST = **P-0Y0M0DT5H31M52S** | BACK: 2010-03-14 00:10:20 EST + P-0Y0M0DT5H31M52S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type3_st_type3_st: FWD: 2010-03-14 00:15:35 EST - 2010-03-14 00:10:20 EST = **P+0Y0M0DT0H5M15S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT0H5M15S = **2010-03-14 00:15:35 EST** | DAYS: **0**
|
||||
test_time_spring_type3_st_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M0DT2H6M35S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M0DT2H6M35S = **2010-03-14 03:16:55 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_st_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 00:10:20 EST = **P+0Y0M1DT18H49M39S** | BACK: 2010-03-14 00:10:20 EST + P+0Y0M1DT18H49M39S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_dt_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT7H38M27S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT7H38M27S = **2010-03-13 18:38:28 EST** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-14 03:16:55 EDT = **P-0Y0M0DT2H6M35S** | BACK: 2010-03-14 03:16:55 EDT + P-0Y0M0DT2H6M35S = **2010-03-14 00:10:20 EST** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type3_dt: FWD: 2010-03-14 05:19:56 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M0DT2H3M1S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M0DT2H3M1S = **2010-03-14 05:19:56 EDT** | DAYS: **0**
|
||||
test_time_spring_type3_dt_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-14 03:16:55 EDT = **P+0Y0M1DT16H43M4S** | BACK: 2010-03-14 03:16:55 EDT + P+0Y0M1DT16H43M4S = **2010-03-15 19:59:59 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_post_type3_prev: FWD: 2010-03-13 18:38:28 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M2DT1H21M31S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M2DT1H21M31S = **2010-03-13 18:38:28 EST** | DAYS: **2**
|
||||
test_time_spring_type3_post_type3_st: FWD: 2010-03-14 00:10:20 EST - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT18H49M39S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT18H49M39S = **2010-03-14 00:10:20 EST** | DAYS: **1**
|
||||
test_time_spring_type3_post_type3_dt: FWD: 2010-03-14 03:16:55 EDT - 2010-03-15 19:59:59 EDT = **P-0Y0M1DT16H43M4S** | BACK: 2010-03-15 19:59:59 EDT + P-0Y0M1DT16H43M4S = **2010-03-14 03:16:55 EDT** | DAYS: **1**
|
||||
test_time_spring_type3_post_type3_post: FWD: 2010-03-15 19:59:59 EDT - 2010-03-15 18:57:55 EDT = **P+0Y0M0DT1H2M4S** | BACK: 2010-03-15 18:57:55 EDT + P+0Y0M0DT1H2M4S = **2010-03-15 19:59:59 EDT** | DAYS: **0**
|
78
ext/date/tests/examine_diff.inc
Normal file
78
ext/date/tests/examine_diff.inc
Normal file
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Helper for the DateTime_diff_add_sub* tests
|
||||
*
|
||||
* @author Daniel Convissor <danielc@analysisandsolutions.com>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Provides a consistent interface for executing date diff tests
|
||||
*
|
||||
* Tests the diff() method then passes the resulting
|
||||
* interval to the add()/sub() method as a double check
|
||||
*
|
||||
* @param string|DateTime $end_date the end date in YYYY-MM-DD format
|
||||
* (can include time HH:MM:SS) or a DateTime object
|
||||
* @param string|DateTime $start_date the start date in YYYY-MM-DD format
|
||||
* (can include time HH:MM:SS) or a DateTime object
|
||||
* @param string $expect_spec the expected result of the tests, in the
|
||||
* special interval specification used for this test suite.
|
||||
* This spec includes a "+" or "-" after the "P" in order to
|
||||
* indicate which direction to go.
|
||||
* @param int $expect_days the number of days to compare with the
|
||||
* interval's "days" property
|
||||
* @param bool $absolute should the result always be a positive number?
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function examine_diff($end_date, $start_date, $expect_spec, $expect_days, $absolute = false) {
|
||||
if (is_string($start_date)) {
|
||||
$start = new DateTime($start_date);
|
||||
} else {
|
||||
$start = $start_date;
|
||||
}
|
||||
$start_date = $start->format('Y-m-d H:i:s T');
|
||||
|
||||
if (is_string($end_date)) {
|
||||
$end = new DateTime($end_date);
|
||||
} else {
|
||||
$end = $end_date;
|
||||
}
|
||||
$end_date = $end->format('Y-m-d H:i:s T');
|
||||
|
||||
$force_sub = false;
|
||||
if ($absolute) {
|
||||
$tmp_interval = $start->diff($end);
|
||||
if ($tmp_interval->format('%r')) {
|
||||
$force_sub = true;
|
||||
}
|
||||
}
|
||||
|
||||
$result_interval = $start->diff($end, $absolute);
|
||||
$result_spec = $result_interval->format('P%R%yY%mM%dDT%hH%iM%sS');
|
||||
$result_days = $result_interval->format('%a');
|
||||
|
||||
// Also make sure add()/sub() works the same way as diff().
|
||||
if ($force_sub) {
|
||||
$start->sub($result_interval);
|
||||
$sign = '-';
|
||||
} else {
|
||||
$start->add($result_interval);
|
||||
$sign = '+';
|
||||
}
|
||||
|
||||
$result_end_date = $start->format('Y-m-d H:i:s T');
|
||||
|
||||
// Leaving this here for making adjustments later.
|
||||
$expect_full = "FWD: $end_date - $start_date = **$expect_spec** | "
|
||||
. "BACK: $start_date $sign $expect_spec = **$end_date** | "
|
||||
. "DAYS: **$expect_days**";
|
||||
// echo "$expect_full\n";
|
||||
// return;
|
||||
|
||||
$result_full = "FWD: $end_date - $start_date = **$result_spec** | "
|
||||
. "BACK: $start_date $sign $result_spec = **$result_end_date** | "
|
||||
. "DAYS: **$result_days**";
|
||||
echo "$result_full\n";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue