Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PEAR, Date et Time Zone

3 réponses
Avatar
DrPiquouze
Salut à tous,

C'est juste une question sur une bizarrerie de la définition des
TimeZone dans le package PEAR.
En effet, quand je regarde les datas du fichier TimeZone.php, je trouve
ligne 400 :

// Time Zone Data
// offset is in miliseconds
//
$GLOBALS['_DATE_TIMEZONE_DATA'] = array(
'Etc/GMT+12' => array(
'offset' => -43200000,
'longname' => "GMT-12:00",
'shortname' => 'GMT-12:00',
'hasdst' => false ),
'Etc/GMT+11' => array(
'offset' => -39600000,
'longname' => "GMT-11:00",
'shortname' => 'GMT-11:00',
'hasdst' => false ),
.......
'Etc/GMT-4' => array(
'offset' => 14400000,
'longname' => "GMT+04:00",
'shortname' => 'GMT+04:00',
'hasdst' => false ),
.......
'Indian/Reunion' => array(
'offset' => 14400000,
'longname' => "Reunion Time",
'shortname' => 'RET',
'hasdst' => false ),

(je donne ce dernier exemple parce qu'il me concerne)

Tout ça fonctionne très bien à l'utilisation, il n'y a pas d'erreurs
sur la manipulation des fuseaux horaires.

J'aimerais juste comprendre ce qui a suscité l'adoption de termes
apparemment contradictoires :
quand l'entête est Etc/GMT-4, ça correspond en fait au fuseau horaire
GMT+04:00.

Pourquoi ce moins (-) dans l'entête, alors que bien sûr GMT+04:00 est
tout à fait exact.

J'ai posé la question sur le forum PEAR,
<http://www.pear-forum.org/forum8.html?sid=93893442eb206797ba9d550c1afd87ca>,
mais sans réponse à cette heure.

Cordialement

3 réponses

Avatar
Olivier Miakinen

C'est juste une question sur une bizarrerie de la définition des
TimeZone dans le package PEAR.
[...]

J'aimerais juste comprendre ce qui a suscité l'adoption de termes
apparemment contradictoires :
quand l'entête est Etc/GMT-4, ça correspond en fait au fuseau horaire
GMT+04:00.


D'un côté, il est clair que ce n'est qu'une convention. Si on a besoin
d'ajouter 4 heures pour passer de l'heure GMT à l'heure locale, on a
besoin de soustraire 4 heures pour repasser de l'heure locale à l'heure GMT.

D'un autre côté, c'est vrai qu'avoir des conventions contradictoires est
toujours source de confusion. Cela me rappelle les prises série où les
broches émission et réception étaient parfois inversées, soi-disant pour
faciliter les choses (on n'avait pas besoin de croiser les fils pour
relier ce genre de prise à une prise normale) mais qui en fait les
compliquait (il fallait toujours un câble croisé pour relier deux prises
de ce type).

Bref... je ne suis pas le développeur de PEAR, même pas un utilisateur,
je ne peux donc pas te dire ce qui a conduit à une telle convention.
Il faut malheureusement vivre avec, comme l'ordre des paramètres des
fonctions implode() et explode(), ou celui de la fonction mktime().

Avatar
m-e-
"DrPiquouze" a écrit dans le message
de news:

Salut à tous,

C'est juste une question sur une bizarrerie de la définition
des
TimeZone dans le package PEAR.
En effet, quand je regarde les datas du fichier TimeZone.php,
je trouve
ligne 400 :

// Time Zone Data
// offset is in miliseconds
//
$GLOBALS['_DATE_TIMEZONE_DATA'] = array(
'Etc/GMT+12' => array(
'offset' => -43200000,
'longname' => "GMT-12:00",
'shortname' => 'GMT-12:00',
'hasdst' => false ),
'Etc/GMT+11' => array(
'offset' => -39600000,
'longname' => "GMT-11:00",
'shortname' => 'GMT-11:00',
'hasdst' => false ),


Dans le même fichier, on lit le commentaire suivant :
<< This class includes time zone data (from zoneinfo) [...] >>

Et en allant voir dans cette base de données :
ftp://elsie.nci.nih.gov/pub/tzdata2006j.tar.gz

On trouve ce commentaire :
<<
We use POSIX-style signs in the Zone names and the output
abbreviations,
even though this is the opposite of what many people expect.
POSIX has positive signs west of Greenwich, but many people
expect
positive signs east of Greenwich. For example, TZ='Etc/GMT+4'
uses
the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
(i.e. west of Greenwich) even though many people would expect it
to
mean 4 hours ahead of UTC (i.e. east of Greenwich).




Et ensuite le même type d'opposition de signe :
<<
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT





Avatar
DrPiquouze

Dans le même fichier, on lit le commentaire suivant :
<< This class includes time zone data (from zoneinfo) [...] >>

Et en allant voir dans cette base de données :
ftp://elsie.nci.nih.gov/pub/tzdata2006j.tar.gz

On trouve ce commentaire :
<<
We use POSIX-style signs in the Zone names and the output
abbreviations,
even though this is the opposite of what many people expect.
POSIX has positive signs west of Greenwich, but many people
expect
positive signs east of Greenwich. For example, TZ='Etc/GMT+4'
uses
the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
(i.e. west of Greenwich) even though many people would expect it
to
mean 4 hours ahead of UTC (i.e. east of Greenwich).




Et ensuite le même type d'opposition de signe :
<<
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT


Salut m-e-,

Ok, ton explication me convient parfaitement, même si je n'ai pas
encore compris pourquoi les auteurs de POSIX ont inversés les signes
« of what many people expect. »

Cordialement