Bug #80896 [Opn->Fbk]: Daylight time mishandled for America/Havana and Asia/Tehran timezones

From: Date: Mon, 22 Mar 2021 19:18:53 +0000
Subject: Bug #80896 [Opn->Fbk]: Daylight time mishandled for America/Havana and Asia/Tehran timezones
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-232921@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80896&edit=1

 ID:                 80896
 Updated by:         requinix@php.net
 Reported by:        ctiancheng at fb dot com
 Summary:            Daylight time mishandled for America/Havana and
                     Asia/Tehran timezones
-Status:             Open
+Status:             Feedback
 Type:               Bug
-Package:            *General Issues
+Package:            Date/time related
 PHP Version:        8.0Git-2021-03-22 (Git)
 Block user comment: N
 Private report:     N

 New Comment:

Looks right to me. https://3v4l.org/7sCi5


Previous Comments:
------------------------------------------------------------------------
[2021-03-22 19:01:19] ctiancheng at fb dot com

Description:
------------
---
From manual page: https://php.net/timezones.america
---
America/Havana and Asia/Tehran are two supported timezones listed from the documentation. However,
The DateTime are not handled correctly during daylight time transition.
This happens when doing $dt->add(new DateInterval('P1D'));

On e.g. 2021/03/14 for America/Havana
On e.g. 2021/03/21 for Asia/Tehran


Test script:
---------------
// http://sandbox.onlinephpfunctions.com/code/0650352a9684872c8dcfff00a64b11660a56eba8
$local_timezone_name = 'America/Havana';
$timestamp = 1615611600; // local time 3/13/21 0:00
$time = (new DateTime())->setTimestamp($timestamp)
      ->setTimezone(new DateTimeZone($local_timezone_name));
$time->add(new DateInterval('P1D')); // local time 03/13/21 1:00

// http://sandbox.onlinephpfunctions.com/code/623d5587f5453dd487492e5fde64cc836a84dcd9
$local_timezone_name = 'Asia/Tehran';
$timestamp = 1616272200; // local time 3/21/21 0:00
$time = (new DateTime())->setTimestamp($timestamp)
      ->setTimezone(new DateTimeZone($local_timezone_name));
$time->add(new DateInterval('P1D')); // local time 03/22/21 1:00




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



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


Thread (6 messages)

« previous php.bugs (#232921) next »