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

From: Date: Fri, 03 Dec 2021 08:41:45 +0000
Subject: Bug #81560 [Com]: DateTime-Add($interval) endless loop for dst
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-238124@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 Comment by: mihailovb at gmail dot com Reported by: mihailovb at gmail dot com Summary: DateTime-Add($interval) endless loop for dst Status: Verified 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: 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. Previous Comments: ------------------------------------------------------------------------ [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 (#238124) next »