#39928 [Opn]: Bogus timezone for dates before 1922
| From: | lafriks at hello dot lv | 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