|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2011-11-07 18:16 UTC] stas@php.net
-Assigned To:
+Assigned To: derick
[2011-11-21 02:16 UTC] danielc@php.net
-Status: Assigned
+Status: Duplicate
[2011-11-21 02:16 UTC] danielc@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 04:00:01 2025 UTC |
Description: ------------ If you diff two dates with TLA timezone (like EDT) and then add the interval back to the earliest date, you would not get the later date but instead the result will be one hour off. See example below. Test script: --------------- $start = new DateTime('2010-06-04 02:18:48 EDT'); var_dump($start->format('U')); $end = new DateTime('2010-06-06 18:38:28 EDT'); $ts = $end->format('U'); var_dump($start, $end); $int = $start->diff($end); var_dump($int, $start); var_dump($start->format('U')); $res = $start->add($int); var_dump($res); Expected result: ---------------- ..... object(DateTime)#1 (3) { ["date"]=> string(19) "2010-06-06 18:38:28" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "EDT" } Actual result: -------------- ....... object(DateTime)#1 (3) { ["date"]=> string(19) "2010-06-06 17:38:28" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "EDT" }