#39928 [Opn]: Bogus timezone for dates before 1922

From: Date: Fri, 22 Dec 2006 11:02:45 +0000
Subject: #39928 [Opn]: Bogus timezone for dates before 1922
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-106778@lists.php.net to get a copy of this message
ID: 39928 User updated by: lafriks at hello dot lv Reported By: lafriks at hello dot lv Status: Open Bug Type: Date/time related Operating System: Mandriva Linux 2007 PHP Version: 5.2.0 New Comment: When I changed in php.ini date.timezone to Europe/Riga what is what I should have. I get even stranger results: <?php $a = new DateTime(); for ($i = 2006; $i > 1900; $i--) { $a->setDate($i, 1, 1); $a->setTime(5, 3, 2); echo $a->format(DateTime::W3C) . "<br />"; } ?> Result: 2006-01-01T05:03:02+02:00 ... 1990-01-01T05:03:02+02:00 1989-01-01T05:03:02+03:00 ... 1945-01-01T05:03:02+03:00 1944-01-01T05:03:02+01:00 1943-01-01T05:03:02+01:00 1942-01-01T05:03:02+02:00 1941-01-01T05:03:02+03:00 1940-01-01T05:03:02+02:00 ... 1927-01-01T05:03:02+02:00 1926-01-01T05:03:02+01:36 ... 1901-01-01T05:03:02+01:36 PHP info: date date/time support enabled Timezone Database Version 2006.14 Timezone Database internal Default timezone Europe/Riga Directive Local Value Master Value date.default_latitude 31.7667 31.7667 date.default_longitude 35.2333 35.2333 date.sunrise_zenith 90.583333 90.583333 date.sunset_zenith 90.583333 90.583333 date.timezone Europe/Riga Europe/Riga Previous Comments: ------------------------------------------------------------------------ [2006-12-22 10:43:15] lafriks at hello dot lv date date/time support enabled Timezone Database Version 2006.14 Timezone Database internal Default timezone Europe/Helsinki Directive Local Value Master Value date.default_latitude 31.7667 31.7667 date.default_longitude 35.2333 35.2333 date.sunrise_zenith 90.583333 90.583333 date.sunset_zenith 90.583333 90.583333 date.timezone no value no value ------------------------------------------------------------------------ [2006-12-22 08:44:53] derick@php.net Which time zone setting are you using? See phpinfo() output for the value of the date.timezone setting. ------------------------------------------------------------------------ [2006-12-22 00:47:32] lafriks at hello dot lv Description: ------------ When using new DateTime class it sets (or just formats) bogus timezone if year is before 1922. For year 1922 timezone is correct but for 1921 is showing wrong. Reproduce code: --------------- <?php $a = new DateTime(); $a->setDate(1922, 1, 1); $a->setTime(5, 3, 2); echo $a->format(DateTime::W3C) . "\n"; $a->setDate(1921, 1, 1); $a->setTime(5, 3, 2); echo $a->format(DateTime::W3C) . "\n"; ?> Expected result: ---------------- 1922-01-01T05:03:02+02:00 1921-01-01T05:03:02+02:00 Actual result: -------------- 1922-01-01T05:03:02+02:00 1921-01-01T05:03:02+01:39 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39928&edit=1

« previous php.bugs (#106778) next »