#39928 [Bgs]: Bogus timezone for dates before 1922
| From: | lafriks at hello dot lv | Date: | Fri, 22 Dec 2006 12:54:12 +0000 |
| Subject: | #39928 [Bgs]: Bogus timezone for dates before 1922 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-106783@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: Bogus
Bug Type: Date/time related
Operating System: Mandriva Linux 2007
PHP Version: 5.2.0
New Comment:
ok, thanks did not know that, sorry for bogus bug report
Previous Comments:
------------------------------------------------------------------------
[2006-12-22 12:31:41] derick@php.net
How strange it might be, it is correct as the following entry in the
time zone database illustrates:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Riga 1:36:24 - LMT 1880
1:36:24 - RMT 1918 Apr 15 2:00 #Riga
Mean Time
1:36:24 1:00 LST 1918 Sep 16 3:00
#Latvian Summer
1:36:24 - RMT 1919 Apr 1 2:00
1:36:24 1:00 LST 1919 May 22 3:00
1:36:24 - RMT 1926 May 11
2:00 - EET 1940 Aug 5
------------------------------------------------------------------------
[2006-12-22 11:02:45] lafriks at hello dot lv
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
------------------------------------------------------------------------
[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