Bug #67675 [Ver->Nab]: DateTimeZone->getTransitions()->ts returns invalid value
| From: | derick@php.net | Date: | Mon, 05 Apr 2021 15:52:41 +0000 |
| Subject: | Bug #67675 [Ver->Nab]: DateTimeZone->getTransitions()->ts returns invalid value | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-233170@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=67675&edit=1
ID: 67675
Updated by: derick@php.net
Reported by: greenrover33 at gmail dot com
Summary: DateTimeZone->getTransitions()->ts returns invalid
value
-Status: Verified
+Status: Not a bug
Type: Bug
Package: Date/time related
Operating System: Linux
PHP Version: 5.6Git-2014-07-29 (Git)
Block user comment: N
Private report: N
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This is the right result.
$ zdump -v Europe/Berlin -c 1000,1900
Europe/Berlin -9223372036854775808 = NULL
Europe/Berlin -9223372036854689408 = NULL
Europe/Berlin Fri Mar 31 23:06:31 1893 UT = Fri Mar 31 23:59:59 1893 LMT isdst=0 gmtoff=3208
Europe/Berlin Fri Mar 31 23:06:32 1893 UT = Sat Apr 1 00:06:32 1893 CET isdst=0 gmtoff=3600
Europe/Berlin 9223372036854689407 = NULL
Europe/Berlin 9223372036854775807 = NULL
Before 1893 (until the beginning of time) the UTC offset was indeed 3208s.
Previous Comments:
------------------------------------------------------------------------
[2021-01-25 13:36:59] cmb@php.net
> You're right that it shouldn't be MIN_LONG, [â¦]
------------------------------------------------------------------------
[2014-07-29 14:29:49] derick@php.net
You're right that it shouldn't be MIN_LONG, but the first entries should be:
Europe/Berlin Fri Mar 31 23:06:31 1893 UT = Fri Mar 31 23:59:59 1893 LMT isdst=0 gmtoff=3208
Europe/Berlin Fri Mar 31 23:06:32 1893 UT = Sat Apr 1 00:06:32 1893 CET isdst=0 gmtoff=3600
Europe/Berlin Sun Apr 30 21:59:59 1916 UT = Sun Apr 30 22:59:59 1916 CET isdst=0 gmtoff=3600
Europe/Berlin Sun Apr 30 22:00:00 1916 UT = Mon May 1 00:00:00 1916 CEST isdst=1 gmtoff=7200
Europe/Berlin Sat Sep 30 22:59:59 1916 UT = Sun Oct 1 00:59:59 1916 CEST isdst=1 gmtoff=7200
Europe/Berlin Sat Sep 30 23:00:00 1916 UT = Sun Oct 1 00:00:00 1916 CET isdst=0 gmtoff=3600
------------------------------------------------------------------------
[2014-07-29 11:36:22] greenrover33 at gmail dot com
Tested it with: 5.6Git-2014-07-29 (Git)
------------------------------------------------------------------------
[2014-07-24 12:10:51] greenrover33 at gmail dot com
Description:
------------
This ts is empty. Because its a to high/low number.
[ts] => -9223372036854775808 === empty($ts->ts)
[ts] => -9223372036854775808 === !isset($ts->ts)
Test script:
---------------
<?PHP
$tz = new DateTimeZone('Europe/Berlin');
foreach ($tz->getTransitions() as $ts) {
if (empty($ts->ts)) {
echo "HRERE is the bug\n";
print_r($ts);
echo "\n\nfull log:\n";
print_r($tz->getTransitions());
die();
}
}
echo "The bug was fixed";
die();
Expected result:
----------------
First row is:
Array
(
[ts] => -9223372036854775808
[time] => -292277022657-01-27T08:29:52+0000
[offset] => 7200
[isdst] => 1
[abbr] => CEST
)
Actual result:
--------------
First row should be:
Array
(
[ts] => -1693706400
[time] => 1916-04-30T22:00:00+0000
[offset] => 7200
[isdst] => 1
[abbr] => CEST
)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=67675&edit=1