--TEST-- RFC: DateTime and Daylight Saving Time Transitions (zone type 3, bd2) --CREDITS-- Daniel Convissor --FILE-- setTimeZone($tz); $start = new DateTime('2010-11-07 01:59:59'); echo 'bd0 ' . $end->format($date_format) . ' - ' . $start->format($date_format) . ' = ' . $start->diff($end)->format('P%dDT%hH%iM%sS') . "\n"; $end = new DateTime('2010-11-07 01:30:00 EST'); $end->setTimeZone($tz); $start = new DateTime('2010-11-06 04:30:00'); echo 'bd5 ' . $end->format($date_format) . ' - ' . $start->format($date_format) . ' = ' . $start->diff($end)->format($interval_format) . "\n"; $end = new DateTime('2010-11-07 01:30:00 EDT'); $end->setTimeZone($tz); $start = new DateTime('2010-11-06 04:30:00'); echo 'bd6 ' . $end->format($date_format) . ' - ' . $start->format($date_format) . ' = ' . $start->diff($end)->format($interval_format) . "\n"; $end = new DateTime('2010-11-07 01:00:00 EST'); $end->setTimeZone($tz); $start = new DateTime('2010-11-06 01:00:00'); echo 'bd8a ' . $end->format($date_format) . ' - ' . $start->format($date_format) . ' = ' . $start->diff($end)->format($interval_format) . "\n"; $end = new DateTime('2010-11-07 01:00:00 EDT'); $end->setTimeZone($tz); $start = new DateTime('2010-11-06 01:00:00'); echo 'bd8b ' . $end->format($date_format) . ' - ' . $start->format($date_format) . ' = ' . $start->diff($end)->format($interval_format) . "\n"; echo "\n"; ?> --EXPECT-- bd0 2010-11-07 01:00:00 EST America/New_York - 2010-11-07 01:59:59 EDT America/New_York = P0DT0H0M1S bd5 2010-11-07 01:30:00 EST America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT22H bd6 2010-11-07 01:30:00 EDT America/New_York - 2010-11-06 04:30:00 EDT America/New_York = P0DT21H bd8a 2010-11-07 01:00:00 EST America/New_York - 2010-11-06 01:00:00 EDT America/New_York = P1DT0H bd8b 2010-11-07 01:00:00 EDT America/New_York - 2010-11-06 01:00:00 EDT America/New_York = P0DT24H