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

 ID:               51975
 Updated by:       ahar...@php.net
 Reported by:      V-o-E at gmx dot de
 Summary:          Missing DST free (UTC±X) timezones in
                   DateTimeZone::listIdentifiers()
-Status:           Open
+Status:           Bogus
 Type:             Bug
 Package:          Date/time related
 Operating System: All
 PHP Version:      5.3.2

 New Comment:

The Olson tz database -- which forms the basis of the time zone support
both for PHP and pretty much every operating system not called Windows
-- doesn't define any time zones relative to UTC other than the
Etc/GMT±x time zones and the UTC time zone itself.



The Etc/GMT time zones are the "wrong way around", but that's been the
case for decades, and isn't something we (or probably anyone else) can
fix without confusing people even more.


Previous Comments:
------------------------------------------------------------------------
[2010-06-02 15:27:44] V-o-E at gmx dot de

Description:
------------
There are not daylight saving time free timezones (UTC±X) in
DateTimeZone::listIdentifiers() (same with DateTimeZone::ALL) except
UTC±0.



As workaround i can use buggy "Etc/GMT±X" from
DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC):



Etc/GMT+2 => Etc/GMT-2

Etc/GMT-2 => Etc/GMT+2



See: http://en.wikipedia.org/wiki/List_of_time_zones_by_UTC_offset



Test script:
---------------
var_dump(DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC));



var_dump(DateTimeZone::listIdentifiers());



$a = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);

var_dump($a[373]); // output: string(9) "Etc/GMT+2"



$b = DateTimeZone::listIdentifiers();

var_dump($b[373]); // output: string(15) "Pacific/Fakaofo"



date_default_timezone_set('UTC');

echo date('H:i:s') . "\n"; // output: 13:13:01



date_default_timezone_set('Etc/GMT+2');

echo date('H:i:s') . "\n"; // output: 11:13:01



date_default_timezone_set('Etc/GMT-2');

echo date('H:i:s') . "\n"; // output: 15:13:01



date_default_timezone_set('Pacific/Fakaofo');

echo date('H:i:s') . "\n"; // output: 01:13:01

Expected result:
----------------
array(564) {

...

}

array(xyz) {

...

  [405]=>

  string(3) "UTC"

  [406]=>

  string(3) "UTC-12"

  [407]=>

  string(3) "UTC-11"

...

}

string(9) "Pacific/Fakaofo"

string(15) "Pacific/Fakaofo"

13:16:08

15:16:08

11:16:08

03:16:08

Actual result:
--------------
array(564) {

...

}

array(406) {

...

  [405]=>

  string(3) "UTC"

}

string(9) "Etc/GMT+2"

string(15) "Pacific/Fakaofo"

13:16:08

11:16:08

15:16:08

03:16:08


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



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

Reply via email to