Bug #66294 [Com]: Timezone display and Timestamps are incorrect when using GMT+/- timezones

[email protected] ("krossiter at dlvr dot it")
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=66294&edit=1

 ID:                 66294
 Comment by:         krossiter at dlvr dot it
 Reported by:        jrossiter at dlvr dot it
 Summary:            Timezone display and Timestamps are incorrect when
                     using GMT+/- timezones
 Status:             Wont fix
 Type:               Bug
 Package:            Date/time related
 Operating System:   Ubuntu 13.04
 PHP Version:        5.5.7
 Block user comment: N
 Private report:     N

 New Comment:

There was no such proscription at the time the bug was filed.

Also, since these are valid timezones, they should be operating as expected.  The user cannot always define what format they receive timezone strings in, and being required to add significant special-case handling of the Etc/UTC timezones is ridiculous.


Previous Comments:
------------------------------------------------------------------------
[2017-03-19 11:27:37] [email protected]

As already pointed out, you are advised to *not* use the GMT-Timezone identifiers as stated at http://www.php.net/manual/en/timezones.others.php.

Therefore we won't fix this issue!

------------------------------------------------------------------------
[2015-09-08 14:47:44] [email protected]

Confirmed: <https://3v4l.org/RCA06>.

However, the manual strongly advises against using the Etc/GMT*
timezones[1], so I suppose that this issue won't be fixed.

[1] <http://www.php.net/manual/en/timezones.others.php>

------------------------------------------------------------------------
[2013-12-14 07:18:28] jrossiter at dlvr dot it

Description:
------------
Creating a new DateTime object using a fixed string with a "GMT(+/-)nn" timezone (e.g. "GMT+12" or "GMT-10") results in the correct date and time being displayed, with but a badly formatted timezone ("GMT+1200", "GMT-1000")

(A note if the reader isn't aware... the Etc/GMT timezones actually perform the opposite of what they appear to be requesting.  GMT+12 is actually GMT minus 12 hours, and GMT-10 is actually GMT plus 10 hours)

The unix timestamp returned by this object is incorrect by 2*offset.  So, the GMT+12 returns a timestamp decremented 24 hours.  The GMT-10 returns a date/time incremented by 20 hours.

Creating a new DateTime object and passing in a DateTimeZone object using an Etc/GMT(+/-)nn (e.g.  "Etc/GMT+12") timezone displays timestamps and formatted timezone as expected.

Test script:
---------------
foreach (['Etc/GMT+12', 'Etc/GMT-10'] as $timezone) {
    $dTZ = new DateTimeZone($timezone);

    // Create a DateTime using the DateTimeZone object
    // This will display both formatted and unix timestamp as expected
    $dT = new DateTime('2013-12-13 18:49:00', $dTZ);
    echo $dT->format('Y-m-d H:i:s T'), PHP_EOL;
    echo $dT->getTimestamp(), PHP_EOL;


    // Create a DateTime using only a string representation
    // This will display the formatted date/time as expected, 
    // but with the incorrect timezone
    // The value returned by getTimestamp() for format('U') will
    // be off by 2*offset
    $dT2 = new DateTime($dT->format('Y-m-d H:i:s T'));
    echo $dT2->format('Y-m-d H:i:s T'), PHP_EOL;
    echo $dT2->getTimestamp(), PHP_EOL, PHP_EOL;
}

Expected result:
----------------
2013-12-13 18:49:00 GMT+12
1387003740
2013-12-13 18:49:00 GMT+12
1387003740

2013-12-13 18:49:00 GMT-10
1386924540
2013-12-13 18:49:00 GMT-10
1386924540


Actual result:
--------------
2013-12-13 18:49:00 GMT+12
1387003740
2013-12-13 18:49:00 GMT+1200
1386917340

2013-12-13 18:49:00 GMT-10
1386924540
2013-12-13 18:49:00 GMT-1000
1386996540


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



--
Edit this bug report at https://bugs.php.net/bug.php?id=66294&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.