summaryrefslogtreecommitdiff
path: root/ext/date/tests/bug55253.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/date/tests/bug55253.phpt')
-rwxr-xr-xext/date/tests/bug55253.phpt47
1 files changed, 47 insertions, 0 deletions
diff --git a/ext/date/tests/bug55253.phpt b/ext/date/tests/bug55253.phpt
new file mode 100755
index 000000000..3c0efc469
--- /dev/null
+++ b/ext/date/tests/bug55253.phpt
@@ -0,0 +1,47 @@
+--TEST--
+DateTime::add() and sub() result -1 hour on objects with time zone type 2
+--CREDITS--
+Daniel Convissor <danielc@php.net>
+--XFAIL--
+Bug 55253 exists
+--FILE--
+<?php
+
+date_default_timezone_set('America/New_York');
+
+$interval = new DateInterval('PT2H1M');
+
+$date3 = new DateTime('2010-10-04 02:18:48');
+$date2 = new DateTime('2010-10-04 02:18:48 EDT');
+
+echo 'Zone Type 3: ' . $date3->format('Y-m-d H:i:s T') . "\n";
+echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n";
+
+echo $interval->format('Add %h hours %i minutes') . "\n";
+$date3->add($interval);
+$date2->add($interval);
+
+echo 'Zone Type 3: ' . $date3->format('Y-m-d H:i:s T') . "\n";
+echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n";
+
+// Try subtracting from expected result.
+$date3 = new DateTime('2010-10-04 04:19:48');
+$date2 = new DateTime('2010-10-04 04:19:48 EDT');
+
+echo $interval->format('Subtract %h hours %i minutes from expected') . "\n";
+$date3->sub($interval);
+$date2->sub($interval);
+
+echo 'Zone Type 3: ' . $date3->format('Y-m-d H:i:s T') . "\n";
+echo 'Zone Type 2: ' . $date2->format('Y-m-d H:i:s T') . "\n";
+
+?>
+--EXPECT--
+Zone Type 3: 2010-10-04 02:18:48 EDT
+Zone Type 2: 2010-10-04 02:18:48 EDT
+Add 2 hours 1 minutes
+Zone Type 3: 2010-10-04 04:19:48 EDT
+Zone Type 2: 2010-10-04 04:19:48 EDT
+Subtract 2 hours 1 minutes from expected
+Zone Type 3: 2010-10-04 02:18:48 EDT
+Zone Type 2: 2010-10-04 02:18:48 EDT