Bug #80974 [Com]: Wrong diff between 2 dates in different timezones

From: Date: Sat, 18 Sep 2021 19:56:59 +0000
Subject: Bug #80974 [Com]: Wrong diff between 2 dates in different timezones
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-236678@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80974&edit=1

 ID:                 80974
 Comment by:         kylekatarnls at gmail dot com
 Reported by:        kylekatarnls at gmail dot com
 Summary:            Wrong diff between 2 dates in different timezones
 Status:             Closed
 Type:               Bug
 Package:            Date/time related
 Operating System:   Ubuntu
 PHP Version:        master-Git-2021-04-21 (Git)
 Assigned To:        derick
 Block user comment: N
 Private report:     N

 New Comment:

I think the fix for this bug caused the following regression:
https://bugs.php.net/bug.php?id=81458


Previous Comments:
------------------------------------------------------------------------
[2021-08-17 13:40:17] kylekatarnls at gmail dot com

Is this bug tracked somewhere and planned to be fixed before stable release? It's not there in
PHP <= 8.0 and I didn't noticed it neither before 8.1.0beta3.

------------------------------------------------------------------------
[2021-08-17 13:14:25] derick@php.net

Kyle, your new "bug" is unrelated to the one that was reported here. The "days"
property is not the same as formatting the "d" (representing days in a year/month/days
kind of way), which with your test case are correct:

------------------------------------------------------------------------
[2021-08-16 19:37:32] kylekatarnls at gmail dot com

Hello, sorry derick but here the fix caused an other regression:

Try the following code:
-----------------------
<?php

$d1 = new DateTimeImmutable('2014-07-08 15:20', new
DateTimeZone('America/Toronto'));
$d2 = $d1->modify('1 day');

var_dump($d1->setTimezone(new DateTimeZone('UTC'))->diff($d2)->days);
var_dump($d1->diff($d2)->days);
-----------------------

days is 1 for both in PHP < 8.1 => correct since $d2 is $d1 + 1 day and there is
no DST there, so I expect to always get 1 with any timezone.

days is 0 since 8.1.0beta3 => very likely a bug.

Did you check my PR?
https://github.com/derickr/timelib/pull/110/files

------------------------------------------------------------------------
[2021-08-08 12:42:57] derick@php.net

The fix for this bug has been committed.
If you are still experiencing this bug, try to check out latest source from https://github.com/php/php-src and re-test.
Thank you for the report, and for helping us make PHP better.

For 8.1.0beta3

------------------------------------------------------------------------
[2021-04-26 08:22:08] corey dot taylor dot fl at gmail dot com

I assume this is related since it was closed with the large patch from derick.

https://bugs.php.net/bug.php?id=79452

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=80974


--
Edit this bug report at https://bugs.php.net/bug.php?id=80974&edit=1


Thread (8 messages)

« previous php.bugs (#236678) next »