ID:               42842
 Updated by:       [EMAIL PROTECTED]
 Reported By:      giewont at gmail dot com
-Status:           Open
+Status:           Suspended
 Bug Type:         Date/time related
 Operating System: Windows NT 5.1 build 2600
 PHP Version:      5.2.4
 New Comment:

This is not something I can fix - the timezone database simply doesn't
have the resolution to store anything outside of the signed integer
range for now. Luckily they are working on extending this - if that
makes it into the database, I can fix this.


Previous Comments:
------------------------------------------------------------------------

[2007-10-04 09:59:13] giewont at gmail dot com

OK, but Y2038 problem is not the same as daylight saving time whith
doesn't work after 2038. DateTime Object is supposed to by a wrapper
around 64bit int and it should work after 2038. 

And it work, because i can set dates after 2038 for example 2040, but
the bug is that when i set timezone to 'Europe/Warsaw' and the date is
set to summer eg. 05.May the GMT offset should be +2h not +1h.

the daylight saving time works properly to 2038, and it should work
after 2038 when i use DateTime.

the Y2038 problem touches mktime but shouldnt cause any errors in
DateTime

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

[2007-10-04 03:41:43] judas dot iscariote at gmail dot com

Please read

http://en.wikipedia.org/wiki/Year_2038_problem

to know the cause.

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

[2007-10-03 16:01:14] giewont at gmail dot com

Description:
------------
When I create DateTime object using UTC and then switch to timezone
with DST eg. 'Europe/Warsaw' and i set Year to any after 2038 the DST
doesn't work.

like below: in may Warsaw is in GMT+2 time zone so when i set UTC time
to 12:00:00 time in Warsaw should be 02:00:00 (14:00:00)


Reproduce code:
---------------
        date_default_timezone_set('Europe/Warsaw');
        $gmt = timezone_open('UTC');
        $eu = timezone_open('Europe/Warsaw');
        
        $date = new DateTime('2040-05-05 12:00:00', $gmt);
        echo $date->format('d-m-Y h:i:s') . '(' .
$date->getTimezone()->getName() . ')<br>';
        $date->setTimezone($eu);
        echo $date->format('d-m-Y h:i:s') . '(' .
$date->getTimezone()->getName() . ')<br>';
        $date->setTimezone($gmt);
        
        $date = new DateTime('2000-05-05 12:00:00', $gmt);
        echo $date->format('d-m-Y h:i:s') . '(' .
$date->getTimezone()->getName() . ')<br>';
        $date->setTimezone($eu);
        echo $date->format('d-m-Y h:i:s') . '(' .
$date->getTimezone()->getName() . ')<br>';
        $date->setTimezone($gmt);

Expected result:
----------------
05-05-2040 12:00:00(UTC)
05-05-2040 02:00:00(Europe/Warsaw)
05-05-2000 12:00:00(UTC)
05-05-2000 02:00:00(Europe/Warsaw)

Actual result:
--------------
05-05-2040 12:00:00(UTC)
05-05-2040 01:00:00(Europe/Warsaw)
05-05-2000 12:00:00(UTC)
05-05-2000 02:00:00(Europe/Warsaw)


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


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

Reply via email to