1--TEST--
2RFC: DateTime and Daylight Saving Time Transitions (zone type 3, fa)
3--CREDITS--
4Daniel Convissor <danielc@php.net>
5--FILE--
6<?php
7
8date_default_timezone_set('America/New_York');
9$date_format = 'Y-m-d H:i:s T e';
10$interval_format = 'P%dDT%hH';
11
12/*
13 * Forward Transitions, add().
14 */
15
16$start = new DateTime('2010-03-14 01:59:59');
17$interval_spec = 'PT1S';
18$interval = new DateInterval($interval_spec);
19echo 'fa1 ' . $start->format($date_format) . " + $interval_spec = "
20    . $start->add($interval)->format($date_format) . "\n";
21
22$start = new DateTime('2010-03-13 04:30:00');
23$interval_spec = 'P1D';
24$interval = new DateInterval($interval_spec);
25echo 'fa2 ' . $start->format($date_format) . " + $interval_spec = "
26    . $start->add($interval)->format($date_format) . "\n";
27
28$start = new DateTime('2010-03-13 04:30:00');
29$interval_spec = 'PT23H';
30$interval = new DateInterval($interval_spec);
31echo 'fa2.5 ' . $start->format($date_format) . " + $interval_spec = "
32    . $start->add($interval)->format($date_format) . "\n";
33
34$start = new DateTime('2010-03-13 04:30:00');
35$interval_spec = 'PT22H';
36$interval = new DateInterval($interval_spec);
37echo 'fa3 ' . $start->format($date_format) . " + $interval_spec = "
38    . $start->add($interval)->format($date_format) . "\n";
39
40$start = new DateTime('2010-03-13 04:30:00');
41$interval_spec = 'PT21H';
42$interval = new DateInterval($interval_spec);
43echo 'fa4 ' . $start->format($date_format) . " + $interval_spec = "
44    . $start->add($interval)->format($date_format) . "\n";
45
46$start = new DateTime('2010-03-13 01:30:00');
47$interval_spec = 'P1D';
48$interval = new DateInterval($interval_spec);
49echo 'fa5 ' . $start->format($date_format) . " + $interval_spec = "
50    . $start->add($interval)->format($date_format) . "\n";
51
52$start = new DateTime('2010-03-13 02:30:00');
53$interval_spec = 'P1D';
54$interval = new DateInterval($interval_spec);
55echo 'fa6 ' . $start->format($date_format) . " + $interval_spec = "
56    . $start->add($interval)->format($date_format) . "\n";
57?>
58--EXPECT--
59fa1 2010-03-14 01:59:59 EST America/New_York + PT1S = 2010-03-14 03:00:00 EDT America/New_York
60fa2 2010-03-13 04:30:00 EST America/New_York + P1D = 2010-03-14 04:30:00 EDT America/New_York
61fa2.5 2010-03-13 04:30:00 EST America/New_York + PT23H = 2010-03-14 04:30:00 EDT America/New_York
62fa3 2010-03-13 04:30:00 EST America/New_York + PT22H = 2010-03-14 03:30:00 EDT America/New_York
63fa4 2010-03-13 04:30:00 EST America/New_York + PT21H = 2010-03-14 01:30:00 EST America/New_York
64fa5 2010-03-13 01:30:00 EST America/New_York + P1D = 2010-03-14 01:30:00 EST America/New_York
65fa6 2010-03-13 02:30:00 EST America/New_York + P1D = 2010-03-14 03:30:00 EDT America/New_York
66