Bug #81560 [Ver->Wfx]: DateTime-Add($interval) endless loop for dst

From: Date: Fri, 13 May 2022 15:45:20 +0000
Subject: Bug #81560 [Ver->Wfx]: DateTime-Add($interval) endless loop for dst
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-241506@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=81560&edit=1 ID: 81560 Updated by: derick@php.net Reported by: mihailovb at gmail dot com Summary: DateTime-Add($interval) endless loop for dst -Status: Verified +Status: Wont fix Type: Bug Package: Date/time related Operating System: CentOS7 (and others) PHP Version: 7.4.25 Assigned To: derick Block user comment: N Private report: N New Comment: Sorry, we can't back port this because that would require merging in an older version of timelib, which also introduces new features and subtly changes behaviour that we can't have in patch releases. Previous Comments: ------------------------------------------------------------------------ [2021-12-03 08:41:45] mihailovb at gmail dot com Ah, I hope it will be backported, cause after looking into the project and the libraries that are being used, not sure if I'd be able to upgrade to 8.1. On the bright side, we'd have something less than an year to try and do it. ------------------------------------------------------------------------ [2021-10-28 11:23:30] cmb@php.net This is apparently fixed as of PHP 8.1.0[1]; I'm not sure whether the fix will be backported. [1] <https://3v4l.org/1df2R> ------------------------------------------------------------------------ [2021-10-28 10:37:34] mihailovb at gmail dot com Description: ------------ PHP 7.4.25 (CentOS), 7.4.3(Ubuntu20.04), 7.2.34(Ubuntu20.04) It goes into an endless loop when trying to add a 15M interval only when working with "negative" timezones. Doesn't happen for European "pozitive" timezones Test script: --------------- <?php $timezoneDST = new DateTimeZone('America/New_York'); $date = new DateTime("2020-11-01", $timezoneDST); $dateInterval = new DateInterval('PT15M'); $counter = 0; while($counter < 500){ $date->add($dateInterval); $counter++; } var_dump($date); Expected result: ---------------- class DateTime#1 (3) { public $date => string(26) "2020-11-06 04:00:00.000000" public $timezone_type => int(3) public $timezone => string(16) "America/New_York" } Actual result: -------------- class DateTime#2 (3) { public $date => string(26) "2020-11-01 01:00:00.000000" public $timezone_type => int(3) public $timezone => string(16) "America/New_York" } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=81560&edit=1

« previous php.bugs (#241506) next »