Problème calcul d'offset UTC par getTransitions ou DateTime.

ortolojf

WRInaute accro
Bonjour

D'après le PHP Manual, pour calculer l'offset en secondes par rapport à GMT/UTC, il y a deux possibilités :

PHP:
   /**
    **  1
    **/
    $dateTimeZone = new DateTimeZone('Europe/Paris');

  $dateTime = new DateTime("now", $dateTimeZone);

  $offset = $dateTime->getOffset();   // par rapport à UTC.

  /**
   ** 2
   **/
    $dateTimeZone = new DateTimeZone('Europe/Paris');
 
    $theTime = time();

    $transitions = $dateTimeZone->getTransitions($theTime,$theTime);

    $offset = $transitions['offset'];   // par rapport à UTC.


Ma question : Quelle différence entre ces deux calculs de l'offset ?

Merci beaucoup.
 

ortolojf

WRInaute accro
Hé bé

En prévision de la finalisation de ma routine de calcul de méridiens :

Merci de me dire avec quelle précision vous souhaiteriez le filtrage.

Amicalement.


Code:
    AFRICA    -    Zone min/max : Africa/Dakar / Africa/Mogadishu    -    Longitude min/max : -17.43333 / 45.36666
    AMERICA    -    Zone min/max : America/Nome / America/Danmarkshavn    -    Longitude min/max : -165.40638 / -18.66666
    ANTARCTICA    -    Zone min/max : Antarctica/Rothera / Antarctica/McMurdo    -    Longitude min/max : -68.13333 / 166.6
    ARCTIC    -    Zone min/max :  / Arctic/Longyearbyen    -    Longitude min/max : 5000000 / 16
    ASIA    -    Zone min/max : Asia/Nicosia / Asia/Anadyr    -    Longitude min/max : 33.36666 / 177.48333
    ATLANTIC    -    Zone min/max : Atlantic/Bermuda / Atlantic/St_Helena    -    Longitude min/max : -64.76666 / -5.7
    AUSTRALIA    -    Zone min/max : Australia/Perth / Australia/Lord_Howe    -    Longitude min/max : 115.85 / 159.08333
    EUROPE    -    Zone min/max : Europe/Lisbon / Europe/Samara    -    Longitude min/max : -9.13333 / 50.15
    INDIAN    -    Zone min/max : Indian/Comoro / Indian/Christmas    -    Longitude min/max : 43.26666 / 105.71666
    PACIFIC    -    Zone min/max : Pacific/Midway / Pacific/Funafuti    -    Longitude min/max : -177.36666 / 179.21666
 
C

christele2

Guest
Bonjour, pour te répondre il faudrait voir comment tu défini $transitions['offset'];
 

ortolojf

WRInaute accro
Voilà, voilà

Avec les noms de pays :

Code:
    Pays
    AFRICA    Zone min/Pays min/Longitude min  : Africa/Dakar / Senegal / -17.43333
    AFRICA    Zone max/Pays max/Longitude max  : Africa/Mogadishu / Somalia / 45.36666
    AMERICA    Zone min/Pays min/Longitude min  : America/Nome / United States of America / -165.40638
    AMERICA    Zone max/Pays max/Longitude max  : America/Danmarkshavn / Greenland / -18.66666
    ANTARCTICA    Zone min/Pays min/Longitude min  : Antarctica/Rothera / Antarctica / -68.13333
    ANTARCTICA    Zone max/Pays max/Longitude max  : Antarctica/McMurdo / Antarctica / 166.6
    ARCTIC    Zone min/Pays min/Longitude min  : Arctic/Longyearbyen / Svalbard and Jan Mayen / 16
    ARCTIC    Zone max/Pays max/Longitude max  : Arctic/Longyearbyen / Svalbard and Jan Mayen / 16
    ASIA    Zone min/Pays min/Longitude min  : Asia/Nicosia / Cyprus / 33.36666
    ASIA    Zone max/Pays max/Longitude max  : Asia/Anadyr / Russian Federation / 177.48333
    ATLANTIC    Zone min/Pays min/Longitude min  : Atlantic/Bermuda / Bermuda / -64.76666
    ATLANTIC    Zone max/Pays max/Longitude max  : Atlantic/St_Helena / Saint Helena, Ascension and Tristan da Cunha / -5.7
    AUSTRALIA    Zone min/Pays min/Longitude min  : Australia/Perth / Australia / 115.85
    AUSTRALIA    Zone max/Pays max/Longitude max  : Australia/Lord_Howe / Australia / 159.08333
    EUROPE    Zone min/Pays min/Longitude min  : Europe/Lisbon / Portugal / -9.13333
    EUROPE    Zone max/Pays max/Longitude max  : Europe/Samara / Russian Federation / 50.15
    INDIAN    Zone min/Pays min/Longitude min  : Indian/Comoro / Comoros / 43.26666
    INDIAN    Zone max/Pays max/Longitude max  : Indian/Christmas / Christmas Island / 105.71666
    PACIFIC    Zone min/Pays min/Longitude min  : Pacific/Midway / United States Minor Outlying Islands / -177.36666
    PACIFIC    Zone max/Pays max/Longitude max  : Pacific/Funafuti / Tuvalu / 179.21666


L'Australie n'a-t-elle pas un plus grand nombre de méridiens que 44° environ ?

Pour KOogar : Je peux adapter le programme que j'ai fait avec des zones plus précises que AFRICA, AMERICA, etc...

Dis-moi seulement.

Merci beaucoup de votre aide.

Amicalement.
 

ortolojf

WRInaute accro
Cette fois-ci çà marche.

Toutes les longitudes en ordre croissant par zone ( AFRICA, AMERICA etc... ), avec leurs zoneName et pays.

Pour sélectionner par sample de longitudes.


Code:
    Pays
    AFRICA    Zone / Pays / Longitude : Africa/Dakar / Senegal / -17.43333
    AFRICA    Zone / Pays / Longitude : Africa/Banjul / Gambia / -16.64999
    AFRICA    Zone / Pays / Longitude : Africa/Nouakchott / Mauritania / -15.95
    AFRICA    Zone / Pays / Longitude : Africa/Bissau / Guinea-Bissau / -15.58333
    AFRICA    Zone / Pays / Longitude : Africa/Conakry / Guinea / -13.71666
    AFRICA    Zone / Pays / Longitude : Africa/Freetown / Sierra Leone / -13.25
    AFRICA    Zone / Pays / Longitude : Africa/El_Aaiun / Western Sahara / -13.2
    AFRICA    Zone / Pays / Longitude : Africa/Monrovia / Liberia / -10.78333
    AFRICA    Zone / Pays / Longitude : Africa/Bamako / Mali / -8
    AFRICA    Zone / Pays / Longitude : Africa/Casablanca / Morocco / -7.58333
    AFRICA    Zone / Pays / Longitude : Africa/Ceuta / Spain / -5.31666
    AFRICA    Zone / Pays / Longitude : Africa/Abidjan / Côte di'Ivoire / -4.03333
    AFRICA    Zone / Pays / Longitude : Africa/Ouagadougou / Burkina Faso / -1.51666
    AFRICA    Zone / Pays / Longitude : Africa/Accra / Ghana / -0.21666
    AFRICA    Zone / Pays / Longitude : Africa/Lome / Togo / 1.21666
    AFRICA    Zone / Pays / Longitude : Africa/Niamey / Niger / 2.11666
    AFRICA    Zone / Pays / Longitude : Africa/Porto-Novo / Benin / 2.61666
    AFRICA    Zone / Pays / Longitude : Africa/Algiers / Algeria / 3.05
    AFRICA    Zone / Pays / Longitude : Africa/Lagos / Nigeria / 3.4
    AFRICA    Zone / Pays / Longitude : Africa/Sao_Tome / Sao Tome and Principe / 6.73333
    AFRICA    Zone / Pays / Longitude : Africa/Malabo / Equatorial Guinea / 8.78333
    AFRICA    Zone / Pays / Longitude : Africa/Libreville / Gabon / 9.44999
    AFRICA    Zone / Pays / Longitude : Africa/Douala / Cameroon / 9.69999
    AFRICA    Zone / Pays / Longitude : Africa/Tunis / Tunisia / 10.18333
    AFRICA    Zone / Pays / Longitude : Africa/Tripoli / Libya / 13.18333
    AFRICA    Zone / Pays / Longitude : Africa/Luanda / Angola / 13.23333
    AFRICA    Zone / Pays / Longitude : Africa/Ndjamena / Chad / 15.05
    AFRICA    Zone / Pays / Longitude : Africa/Brazzaville / Congo / 15.28333
    AFRICA    Zone / Pays / Longitude : Africa/Kinshasa / Congo, Democratic Republic of the / 15.3
    AFRICA    Zone / Pays / Longitude : Africa/Windhoek / Namibia / 17.1
    AFRICA    Zone / Pays / Longitude : Africa/Bangui / Central African Republic / 18.58333
    AFRICA    Zone / Pays / Longitude : Africa/Gaborone / Botswana / 25.91666
    AFRICA    Zone / Pays / Longitude : Africa/Lubumbashi / Congo, Democratic Republic of the / 27.46666
    AFRICA    Zone / Pays / Longitude : Africa/Maseru / Lesotho / 27.5
    AFRICA    Zone / Pays / Longitude : Africa/Johannesburg / South Africa / 28
    AFRICA    Zone / Pays / Longitude : Africa/Lusaka / Zambia / 28.28333
    AFRICA    Zone / Pays / Longitude : Africa/Bujumbura / Burundi / 29.36666
    AFRICA    Zone / Pays / Longitude : Africa/Kigali / Rwanda / 30.06666
    AFRICA    Zone / Pays / Longitude : Africa/Harare / Zimbabwe / 31.05
    AFRICA    Zone / Pays / Longitude : Africa/Mbabane / Eswatini / 31.1
    AFRICA    Zone / Pays / Longitude : Africa/Cairo / Egypt / 31.25
    AFRICA    Zone / Pays / Longitude : Africa/Juba / South Sudan / 31.61666
    AFRICA    Zone / Pays / Longitude : Africa/Kampala / Uganda / 32.41666
    AFRICA    Zone / Pays / Longitude : Africa/Khartoum / Sudan / 32.53333
    AFRICA    Zone / Pays / Longitude : Africa/Maputo / Mozambique / 32.58333
    AFRICA    Zone / Pays / Longitude : Africa/Blantyre / Malawi / 35
    AFRICA    Zone / Pays / Longitude : Africa/Nairobi / Kenya / 36.81666
    AFRICA    Zone / Pays / Longitude : Africa/Addis_Ababa / Ethiopia / 38.7
    AFRICA    Zone / Pays / Longitude : Africa/Asmara / Eritrea / 38.88333
    AFRICA    Zone / Pays / Longitude : Africa/Dar_es_Salaam / Tanzania, United Republic of / 39.28333
    AFRICA    Zone / Pays / Longitude : Africa/Djibouti / Djibouti / 43.15
    AMERICA    Zone / Pays / Longitude : America/Adak / United States of America / -176.65805
    AMERICA    Zone / Pays / Longitude : America/Nome / United States of America / -165.40638
    AMERICA    Zone / Pays / Longitude : America/Anchorage / United States of America / -149.90027
    AMERICA    Zone / Pays / Longitude : America/Yakutat / United States of America / -139.72722
    AMERICA    Zone / Pays / Longitude : America/Dawson / Canada / -139.41666
    AMERICA    Zone / Pays / Longitude : America/Sitka / United States of America / -135.30194
    AMERICA    Zone / Pays / Longitude : America/Whitehorse / Canada / -135.05
    AMERICA    Zone / Pays / Longitude : America/Juneau / United States of America / -134.41972
    AMERICA    Zone / Pays / Longitude : America/Inuvik / Canada / -133.71666
    AMERICA    Zone / Pays / Longitude : America/Metlakatla / United States of America / -131.57638
    AMERICA    Zone / Pays / Longitude : America/Vancouver / Canada / -123.11666
    AMERICA    Zone / Pays / Longitude : America/Fort_Nelson / Canada / -122.7
    AMERICA    Zone / Pays / Longitude : America/Dawson_Creek / Canada / -120.23333
    AMERICA    Zone / Pays / Longitude : America/Los_Angeles / United States of America / -118.24277
    AMERICA    Zone / Pays / Longitude : America/Tijuana / Mexico / -117.01666
    AMERICA    Zone / Pays / Longitude : America/Creston / Canada / -116.51666
    AMERICA    Zone / Pays / Longitude : America/Boise / United States of America / -116.2025
    AMERICA    Zone / Pays / Longitude : America/Yellowknife / Canada / -114.35
    AMERICA    Zone / Pays / Longitude : America/Edmonton / Canada / -113.46666
    AMERICA    Zone / Pays / Longitude : America/Phoenix / United States of America / -112.07333
    AMERICA    Zone / Pays / Longitude : America/Hermosillo / Mexico / -110.96666
    AMERICA    Zone / Pays / Longitude : America/Swift_Current / Canada / -107.83333
    AMERICA    Zone / Pays / Longitude : America/Mazatlan / Mexico / -106.41666
    AMERICA    Zone / Pays / Longitude : America/Chihuahua / Mexico / -106.08333
    AMERICA    Zone / Pays / Longitude : America/Bahia_Banderas / Mexico / -105.25
    AMERICA    Zone / Pays / Longitude : America/Cambridge_Bay / Canada / -105.05277
    AMERICA    Zone / Pays / Longitude : America/Denver / United States of America / -104.98416
    AMERICA    Zone / Pays / Longitude : America/Regina / Canada / -104.65
    AMERICA    Zone / Pays / Longitude : America/Ojinaga / Mexico / -104.41666
    AMERICA    Zone / Pays / Longitude : America/North_Dakota/Beulah / United States of America / -101.77777
    AMERICA    Zone / Pays / Longitude : America/North_Dakota/New_Salem / United States of America / -101.41083
    AMERICA    Zone / Pays / Longitude : America/North_Dakota/Center / United States of America / -101.29916
    AMERICA    Zone / Pays / Longitude : America/Monterrey / Mexico / -100.31666
    AMERICA    Zone / Pays / Longitude : America/Mexico_City / Mexico / -99.15
    AMERICA    Zone / Pays / Longitude : America/Matamoros / Mexico / -97.5
    AMERICA    Zone / Pays / Longitude : America/Winnipeg / Canada / -97.15
    AMERICA    Zone / Pays / Longitude : America/Resolute / Canada / -94.82916
    AMERICA    Zone / Pays / Longitude : America/Rainy_River / Canada / -94.56666
    AMERICA    Zone / Pays / Longitude : America/Rankin_Inlet / Canada / -92.08305
    AMERICA    Zone / Pays / Longitude : America/Atikokan / Canada / -91.62166
    AMERICA    Zone / Pays / Longitude : America/Guatemala / Guatemala / -90.51666
    AMERICA    Zone / Pays / Longitude : America/Merida / Mexico / -89.61666
    AMERICA    Zone / Pays / Longitude : America/Thunder_Bay / Canada / -89.25
    AMERICA    Zone / Pays / Longitude : America/El_Salvador / El Salvador / -89.2
    AMERICA    Zone / Pays / Longitude : America/Nipigon / Canada / -88.26666
    AMERICA    Zone / Pays / Longitude : America/Belize / Belize / -88.2
    AMERICA    Zone / Pays / Longitude : America/Chicago / United States of America / -87.65
    AMERICA    Zone / Pays / Longitude : America/Menominee / United States of America / -87.61416
    AMERICA    Zone / Pays / Longitude : America/Indiana/Vincennes / United States of America / -87.52861
    AMERICA    Zone / Pays / Longitude : America/Indiana/Petersburg / United States of America / -87.27861
    AMERICA    Zone / Pays / Longitude : America/Tegucigalpa / Honduras / -87.21666
    AMERICA    Zone / Pays / Longitude : America/Cancun / Mexico / -86.76666
    AMERICA    Zone / Pays / Longitude : America/Indiana/Tell_City / United States of America / -86.76138
    AMERICA    Zone / Pays / Longitude : America/Indiana/Knox / United States of America / -86.625
    AMERICA    Zone / Pays / Longitude : America/Indiana/Winamac / United States of America / -86.60305
    AMERICA    Zone / Pays / Longitude : America/Indiana/Marengo / United States of America / -86.34472
    AMERICA    Zone / Pays / Longitude : America/Managua / Nicaragua / -86.28333
    AMERICA    Zone / Pays / Longitude : America/Indiana/Indianapolis / United States of America / -86.15805
    AMERICA    Zone / Pays / Longitude : America/Kentucky/Louisville / United States of America / -85.75944
    AMERICA    Zone / Pays / Longitude : America/Indiana/Vevay / United States of America / -85.06722
    AMERICA    Zone / Pays / Longitude : America/Kentucky/Monticello / United States of America / -84.84916
    AMERICA    Zone / Pays / Longitude : America/Costa_Rica / Costa Rica / -84.08333
    AMERICA    Zone / Pays / Longitude : America/Detroit / United States of America / -83.04583
    AMERICA    Zone / Pays / Longitude : America/Havana / Cuba / -82.36666
    AMERICA    Zone / Pays / Longitude : America/Cayman / Cayman Islands / -81.38333
    AMERICA    Zone / Pays / Longitude : America/Guayaquil / Ecuador / -79.83333
    AMERICA    Zone / Pays / Longitude : America/Panama / Panama / -79.53333
    AMERICA    Zone / Pays / Longitude : America/Toronto / Canada / -79.38333
    AMERICA    Zone / Pays / Longitude : America/Nassau / Bahamas / -77.34999
    AMERICA    Zone / Pays / Longitude : America/Lima / Peru / -77.05
    AMERICA    Zone / Pays / Longitude : America/Jamaica / Jamaica / -76.79333
    AMERICA    Zone / Pays / Longitude : America/Bogota / Colombia / -74.08333
    AMERICA    Zone / Pays / Longitude : America/New_York / United States of America / -74.00638
    AMERICA    Zone / Pays / Longitude : America/Port-au-Prince / Haiti / -72.33333
    AMERICA    Zone / Pays / Longitude : America/Grand_Turk / Turks and Caicos Islands / -71.13333
    AMERICA    Zone / Pays / Longitude : America/Punta_Arenas / Chile / -70.91666
    AMERICA    Zone / Pays / Longitude : America/Santiago / Chile / -70.66666
    AMERICA    Zone / Pays / Longitude : America/Aruba / Aruba / -69.96666
    AMERICA    Zone / Pays / Longitude : America/Santo_Domingo / Dominican Republic / -69.9
    AMERICA    Zone / Pays / Longitude : America/Eirunepe / Brazil / -69.86666
    AMERICA    Zone / Pays / Longitude : America/Argentina/Rio_Gallegos / Argentina / -69.21666
    AMERICA    Zone / Pays / Longitude : America/Curacao / Curaçao / -69
    AMERICA    Zone / Pays / Longitude : America/Argentina/Mendoza / Argentina / -68.81666
    AMERICA    Zone / Pays / Longitude : America/Thule / Greenland / -68.78333
    AMERICA    Zone / Pays / Longitude : America/Argentina/San_Juan / Argentina / -68.51666
    AMERICA    Zone / Pays / Longitude : America/Iqaluit / Canada / -68.46666
    AMERICA    Zone / Pays / Longitude : America/Argentina/Ushuaia / Argentina / -68.3
    AMERICA    Zone / Pays / Longitude : America/Kralendijk / Bonaire, Sint Eustatius and Saba / -68.27666
    AMERICA    Zone / Pays / Longitude : America/La_Paz / Bolivia / -68.15
    AMERICA    Zone / Pays / Longitude : America/Rio_Branco / Brazil / -67.8
    AMERICA    Zone / Pays / Longitude : America/Caracas / Venezuela (Bolivarian Republic of) / -66.93333
    AMERICA    Zone / Pays / Longitude : America/Argentina/La_Rioja / Argentina / -66.84999
    AMERICA    Zone / Pays / Longitude : America/Argentina/San_Luis / Argentina / -66.34999
    AMERICA    Zone / Pays / Longitude : America/Puerto_Rico / Puerto Rico / -66.10611
    AMERICA    Zone / Pays / Longitude : America/Argentina/Catamarca / Argentina / -65.78333
    AMERICA    Zone / Pays / Longitude : America/Pangnirtung / Canada / -65.73333
    AMERICA    Zone / Pays / Longitude : America/Argentina/Salta / Argentina / -65.41666
    AMERICA    Zone / Pays / Longitude : America/Argentina/Jujuy / Argentina / -65.3
    AMERICA    Zone / Pays / Longitude : America/Argentina/Tucuman / Argentina / -65.21666
    AMERICA    Zone / Pays / Longitude : America/St_Thomas / Virgin Islands (U.S.) / -64.93333
    AMERICA    Zone / Pays / Longitude : America/Moncton / Canada / -64.78333
    AMERICA    Zone / Pays / Longitude : America/Tortola / Virgin Islands (British) / -64.61666
    AMERICA    Zone / Pays / Longitude : America/Argentina/Cordoba / Argentina / -64.18333
    AMERICA    Zone / Pays / Longitude : America/Porto_Velho / Brazil / -63.9
    AMERICA    Zone / Pays / Longitude : America/Halifax / Canada / -63.6
    AMERICA    Zone / Pays / Longitude : America/Marigot / Saint Martin (French part) / -63.08333
    AMERICA    Zone / Pays / Longitude : America/Anguilla / Anguilla / -63.06666
    AMERICA    Zone / Pays / Longitude : America/Lower_Princes / Sint Maarten (Dutch part) / -63.04722
    AMERICA    Zone / Pays / Longitude : America/St_Barthelemy / Saint Barthélemy / -62.85
    AMERICA    Zone / Pays / Longitude : America/St_Kitts / Saint Kitts and Nevis / -62.71666
    AMERICA    Zone / Pays / Longitude : America/Montserrat / Montserrat / -62.21666
    AMERICA    Zone / Pays / Longitude : America/Antigua / Antigua and Barbuda / -61.8
    AMERICA    Zone / Pays / Longitude : America/Grenada / Grenada / -61.75
    AMERICA    Zone / Pays / Longitude : America/Guadeloupe / Guadeloupe / -61.53333
    AMERICA    Zone / Pays / Longitude : America/Port_of_Spain / Trinidad and Tobago / -61.51666
    AMERICA    Zone / Pays / Longitude : America/Dominica / Dominica / -61.4
    AMERICA    Zone / Pays / Longitude : America/St_Vincent / Saint Vincent and the Grenadines / -61.23333
    AMERICA    Zone / Pays / Longitude : America/Martinique / Martinique / -61.08333
    AMERICA    Zone / Pays / Longitude : America/St_Lucia / Saint Lucia / -61
    AMERICA    Zone / Pays / Longitude : America/Boa_Vista / Brazil / -60.66666
    AMERICA    Zone / Pays / Longitude : America/Goose_Bay / Canada / -60.41666
    AMERICA    Zone / Pays / Longitude : America/Manaus / Brazil / -60.01666
    AMERICA    Zone / Pays / Longitude : America/Glace_Bay / Canada / -59.95
    AMERICA    Zone / Pays / Longitude : America/Barbados / Barbados / -59.61666
    AMERICA    Zone / Pays / Longitude : America/Argentina/Buenos_Aires / Argentina / -58.45
    AMERICA    Zone / Pays / Longitude : America/Guyana / Guyana / -58.16666
    AMERICA    Zone / Pays / Longitude : America/Asuncion / Paraguay / -57.66666
    AMERICA    Zone / Pays / Longitude : America/Blanc-Sablon / Canada / -57.11666
    AMERICA    Zone / Pays / Longitude : America/Miquelon / Saint Pierre and Miquelon / -56.33333
    AMERICA    Zone / Pays / Longitude : America/Montevideo / Uruguay / -56.2125
    AMERICA    Zone / Pays / Longitude : America/Cuiaba / Brazil / -56.08333
    AMERICA    Zone / Pays / Longitude : America/Paramaribo / Suriname / -55.16666
    AMERICA    Zone / Pays / Longitude : America/Santarem / Brazil / -54.86666
    AMERICA    Zone / Pays / Longitude : America/Campo_Grande / Brazil / -54.61666
    AMERICA    Zone / Pays / Longitude : America/St_Johns / Canada / -52.71666
    AMERICA    Zone / Pays / Longitude : America/Cayenne / French Guiana / -52.33333
    AMERICA    Zone / Pays / Longitude : America/Nuuk / Greenland / -51.73333
    AMERICA    Zone / Pays / Longitude : America/Belem / Brazil / -48.48333
    AMERICA    Zone / Pays / Longitude : America/Araguaina / Brazil / -48.2
    AMERICA    Zone / Pays / Longitude : America/Sao_Paulo / Brazil / -46.61666
    AMERICA    Zone / Pays / Longitude : America/Bahia / Brazil / -38.51666
    AMERICA    Zone / Pays / Longitude : America/Fortaleza / Brazil / -38.5
    AMERICA    Zone / Pays / Longitude : America/Maceio / Brazil / -35.71666
    AMERICA    Zone / Pays / Longitude : America/Recife / Brazil / -34.9
    AMERICA    Zone / Pays / Longitude : America/Noronha / Brazil / -32.41666
    AMERICA    Zone / Pays / Longitude : America/Scoresbysund / Greenland / -21.96666
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Rothera / Antarctica / -68.13333
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Palmer / Antarctica / -64.09999
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Troll / Antarctica / 2.53499
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Syowa / Antarctica / 39.59
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Mawson / Antarctica / 62.88333
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Davis / Antarctica / 77.96666
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Vostok / Antarctica / 106.9
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Casey / Antarctica / 110.51666
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/DumontDUrville / Antarctica / 140.01666
    ANTARCTICA    Zone / Pays / Longitude : Antarctica/Macquarie / Australia / 158.94999
    ASIA    Zone / Pays / Longitude : Asia/Nicosia / Cyprus / 33.36666
    ASIA    Zone / Pays / Longitude : Asia/Famagusta / Cyprus / 33.95
    ASIA    Zone / Pays / Longitude : Asia/Gaza / Palestine, State of / 34.46666
    ASIA    Zone / Pays / Longitude : Asia/Hebron / Palestine, State of / 35.095
    ASIA    Zone / Pays / Longitude : Asia/Jerusalem / Israel / 35.22388
    ASIA    Zone / Pays / Longitude : Asia/Beirut / Lebanon / 35.5
    ASIA    Zone / Pays / Longitude : Asia/Amman / Jordan / 35.93333
    ASIA    Zone / Pays / Longitude : Asia/Damascus / Syrian Arab Republic / 36.29999
    ASIA    Zone / Pays / Longitude : Asia/Baghdad / Iraq / 44.41666
    ASIA    Zone / Pays / Longitude : Asia/Yerevan / Armenia / 44.5
    ASIA    Zone / Pays / Longitude : Asia/Tbilisi / Georgia / 44.81666
    ASIA    Zone / Pays / Longitude : Asia/Aden / Yemen / 45.2
    ASIA    Zone / Pays / Longitude : Asia/Riyadh / Saudi Arabia / 46.71666
    ASIA    Zone / Pays / Longitude : Asia/Kuwait / Kuwait / 47.98333
    ASIA    Zone / Pays / Longitude : Asia/Baku / Azerbaijan / 49.85
    ASIA    Zone / Pays / Longitude : Asia/Aqtau / Kazakhstan / 50.26666
    ASIA    Zone / Pays / Longitude : Asia/Bahrain / Bahrain / 50.58333
    ASIA    Zone / Pays / Longitude : Asia/Oral / Kazakhstan / 51.35
    ASIA    Zone / Pays / Longitude : Asia/Tehran / Iran (Islamic Republic of) / 51.43333
    ASIA    Zone / Pays / Longitude : Asia/Qatar / Qatar / 51.53333
    ASIA    Zone / Pays / Longitude : Asia/Atyrau / Kazakhstan / 51.93333
    ASIA    Zone / Pays / Longitude : Asia/Dubai / United Arab Emirates / 55.3
    ASIA    Zone / Pays / Longitude : Asia/Aqtobe / Kazakhstan / 57.16666
    ASIA    Zone / Pays / Longitude : Asia/Ashgabat / Turkmenistan / 58.38333
    ASIA    Zone / Pays / Longitude : Asia/Muscat / Oman / 58.58333
    ASIA    Zone / Pays / Longitude : Asia/Yekaterinburg / Russian Federation / 60.6
    ASIA    Zone / Pays / Longitude : Asia/Qostanay / Kazakhstan / 63.61666
    ASIA    Zone / Pays / Longitude : Asia/Qyzylorda / Kazakhstan / 65.46666
    ASIA    Zone / Pays / Longitude : Asia/Samarkand / Uzbekistan / 66.8
    ASIA    Zone / Pays / Longitude : Asia/Karachi / Pakistan / 67.05
    ASIA    Zone / Pays / Longitude : Asia/Dushanbe / Tajikistan / 68.8
    ASIA    Zone / Pays / Longitude : Asia/Kabul / Afghanistan / 69.2
    ASIA    Zone / Pays / Longitude : Asia/Tashkent / Uzbekistan / 69.3
    ASIA    Zone / Pays / Longitude : Asia/Omsk / Russian Federation / 73.4
    ASIA    Zone / Pays / Longitude : Asia/Bishkek / Kyrgyzstan / 74.59999
    ASIA    Zone / Pays / Longitude : Asia/Almaty / Kazakhstan / 76.95
    ASIA    Zone / Pays / Longitude : Asia/Colombo / Sri Lanka / 79.84999
    ASIA    Zone / Pays / Longitude : Asia/Novosibirsk / Russian Federation / 82.91666
    ASIA    Zone / Pays / Longitude : Asia/Barnaul / Russian Federation / 83.75
    ASIA    Zone / Pays / Longitude : Asia/Tomsk / Russian Federation / 84.96666
    ASIA    Zone / Pays / Longitude : Asia/Kathmandu / Nepal / 85.31666
    ASIA    Zone / Pays / Longitude : Asia/Novokuznetsk / Russian Federation / 87.11666
    ASIA    Zone / Pays / Longitude : Asia/Urumqi / China / 87.58333
    ASIA    Zone / Pays / Longitude : Asia/Kolkata / India / 88.36666
    ASIA    Zone / Pays / Longitude : Asia/Thimphu / Bhutan / 89.65
    ASIA    Zone / Pays / Longitude : Asia/Dhaka / Bangladesh / 90.41666
    ASIA    Zone / Pays / Longitude : Asia/Hovd / Mongolia / 91.65
    ASIA    Zone / Pays / Longitude : Asia/Krasnoyarsk / Russian Federation / 92.83333
    ASIA    Zone / Pays / Longitude : Asia/Yangon / Myanmar / 96.16666
    ASIA    Zone / Pays / Longitude : Asia/Bangkok / Thailand / 100.51666
    ASIA    Zone / Pays / Longitude : Asia/Kuala_Lumpur / Malaysia / 101.7
    ASIA    Zone / Pays / Longitude : Asia/Vientiane / Lao People's Democratic Republic / 102.6
    ASIA    Zone / Pays / Longitude : Asia/Singapore / Singapore / 103.85
    ASIA    Zone / Pays / Longitude : Asia/Irkutsk / Russian Federation / 104.33333
    ASIA    Zone / Pays / Longitude : Asia/Phnom_Penh / Cambodia / 104.91666
    ASIA    Zone / Pays / Longitude : Asia/Ho_Chi_Minh / Viet Nam / 106.66666
    ASIA    Zone / Pays / Longitude : Asia/Jakarta / Indonesia / 106.8
    ASIA    Zone / Pays / Longitude : Asia/Ulaanbaatar / Mongolia / 106.88333
    ASIA    Zone / Pays / Longitude : Asia/Pontianak / Indonesia / 109.33333
    ASIA    Zone / Pays / Longitude : Asia/Kuching / Malaysia / 110.33333
    ASIA    Zone / Pays / Longitude : Asia/Chita / Russian Federation / 113.46666
    ASIA    Zone / Pays / Longitude : Asia/Macau / Macao / 113.54166
    ASIA    Zone / Pays / Longitude : Asia/Hong_Kong / Hong Kong / 114.15
    ASIA    Zone / Pays / Longitude : Asia/Choibalsan / Mongolia / 114.5
    ASIA    Zone / Pays / Longitude : Asia/Brunei / Brunei Darussalam / 114.91666
    ASIA    Zone / Pays / Longitude : Asia/Makassar / Indonesia / 119.4
    ASIA    Zone / Pays / Longitude : Asia/Manila / Philippines / 121
    ASIA    Zone / Pays / Longitude : Asia/Shanghai / China / 121.46666
    ASIA    Zone / Pays / Longitude : Asia/Taipei / Taiwan, Province of China / 121.5
    ASIA    Zone / Pays / Longitude : Asia/Dili / Timor-Leste / 125.58333
    ASIA    Zone / Pays / Longitude : Asia/Pyongyang / Korea (Democratic People's Republic of) / 125.75
    ASIA    Zone / Pays / Longitude : Asia/Seoul / Korea, Republic of / 126.96666
    ASIA    Zone / Pays / Longitude : Asia/Yakutsk / Russian Federation / 129.66666
    ASIA    Zone / Pays / Longitude : Asia/Vladivostok / Russian Federation / 131.93333
    ASIA    Zone / Pays / Longitude : Asia/Khandyga / Russian Federation / 135.55388
    ASIA    Zone / Pays / Longitude : Asia/Tokyo / Japan / 139.74472
    ASIA    Zone / Pays / Longitude : Asia/Jayapura / Indonesia / 140.69999
    ASIA    Zone / Pays / Longitude : Asia/Sakhalin / Russian Federation / 142.69999
    ASIA    Zone / Pays / Longitude : Asia/Ust-Nera / Russian Federation / 143.22666
    ASIA    Zone / Pays / Longitude : Asia/Magadan / Russian Federation / 150.8
    ASIA    Zone / Pays / Longitude : Asia/Srednekolymsk / Russian Federation / 153.71666
    ASIA    Zone / Pays / Longitude : Asia/Kamchatka / Russian Federation / 158.65
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Bermuda / Bermuda / -64.76666
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Stanley / Falkland Islands / -57.85
    ATLANTIC    Zone / Pays / Longitude : Atlantic/South_Georgia / South Georgia and the South Sandwich Islands / -36.53333
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Azores / Portugal / -25.66666
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Cape_Verde / Cabo Verde / -23.51666
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Reykjavik / Iceland / -21.85
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Madeira / Portugal / -16.89999
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Canary / Spain / -15.4
    ATLANTIC    Zone / Pays / Longitude : Atlantic/Faroe / Faroe Islands / -6.76666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Perth / Australia / 115.85
    AUSTRALIA    Zone / Pays / Longitude : Australia/Eucla / Australia / 128.86666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Darwin / Australia / 130.83333
    AUSTRALIA    Zone / Pays / Longitude : Australia/Adelaide / Australia / 138.58333
    AUSTRALIA    Zone / Pays / Longitude : Australia/Broken_Hill / Australia / 141.44999
    AUSTRALIA    Zone / Pays / Longitude : Australia/Currie / Australia / 143.86666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Melbourne / Australia / 144.96666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Hobart / Australia / 147.31666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Lindeman / Australia / 149
    AUSTRALIA    Zone / Pays / Longitude : Australia/Sydney / Australia / 151.21666
    AUSTRALIA    Zone / Pays / Longitude : Australia/Brisbane / Australia / 153.03333
    EUROPE    Zone / Pays / Longitude : Europe/Lisbon / Portugal / -9.13333
    EUROPE    Zone / Pays / Longitude : Europe/Dublin / Ireland / -6.25
    EUROPE    Zone / Pays / Longitude : Europe/Gibraltar / Gibraltar / -5.35
    EUROPE    Zone / Pays / Longitude : Europe/Isle_of_Man / Isle of Man / -4.46666
    EUROPE    Zone / Pays / Longitude : Europe/Madrid / Spain / -3.68333
    EUROPE    Zone / Pays / Longitude : Europe/Guernsey / Guernsey / -2.53611
    EUROPE    Zone / Pays / Longitude : Europe/Jersey / Jersey / -2.10666
    EUROPE    Zone / Pays / Longitude : Europe/London / United Kingdom of Great Britain and Northern Ireland / -0.12527
    EUROPE    Zone / Pays / Longitude : Europe/Andorra / Andorra / 1.51666
    EUROPE    Zone / Pays / Longitude : Europe/Paris / France / 2.33333
    EUROPE    Zone / Pays / Longitude : Europe/Brussels / Belgium / 4.33333
    EUROPE    Zone / Pays / Longitude : Europe/Amsterdam / Netherlands / 4.9
    EUROPE    Zone / Pays / Longitude : Europe/Luxembourg / Luxembourg / 6.15
    EUROPE    Zone / Pays / Longitude : Europe/Monaco / Monaco / 7.38333
    EUROPE    Zone / Pays / Longitude : Europe/Zurich / Switzerland / 8.53333
    EUROPE    Zone / Pays / Longitude : Europe/Busingen / Germany / 8.68333
    EUROPE    Zone / Pays / Longitude : Europe/Vaduz / Liechtenstein / 9.51666
    EUROPE    Zone / Pays / Longitude : Europe/Oslo / Norway / 10.75
    EUROPE    Zone / Pays / Longitude : Europe/Vatican / Holy See / 12.45305
    EUROPE    Zone / Pays / Longitude : Europe/San_Marino / San Marino / 12.46666
    EUROPE    Zone / Pays / Longitude : Europe/Rome / Italy / 12.48333
    EUROPE    Zone / Pays / Longitude : Europe/Copenhagen / Denmark / 12.58333
    EUROPE    Zone / Pays / Longitude : Europe/Berlin / Germany / 13.36666
    EUROPE    Zone / Pays / Longitude : Europe/Prague / Czechia / 14.43333
    EUROPE    Zone / Pays / Longitude : Europe/Ljubljana / Slovenia / 14.51666
    EUROPE    Zone / Pays / Longitude : Europe/Malta / Malta / 14.51666
    EUROPE    Zone / Pays / Longitude : Europe/Zagreb / Croatia / 15.96666
    EUROPE    Zone / Pays / Longitude : Europe/Vienna / Austria / 16.33333
    EUROPE    Zone / Pays / Longitude : Europe/Bratislava / Slovakia / 17.11666
    EUROPE    Zone / Pays / Longitude : Europe/Stockholm / Sweden / 18.05
    EUROPE    Zone / Pays / Longitude : Europe/Sarajevo / Bosnia and Herzegovina / 18.41666
    EUROPE    Zone / Pays / Longitude : Europe/Budapest / Hungary / 19.08333
    EUROPE    Zone / Pays / Longitude : Europe/Podgorica / Montenegro / 19.26666
    EUROPE    Zone / Pays / Longitude : Europe/Tirane / Albania / 19.83333
    EUROPE    Zone / Pays / Longitude : Europe/Mariehamn / Åland Islands / 19.95
    EUROPE    Zone / Pays / Longitude : Europe/Belgrade / Serbia / 20.5
    EUROPE    Zone / Pays / Longitude : Europe/Kaliningrad / Russian Federation / 20.5
    EUROPE    Zone / Pays / Longitude : Europe/Warsaw / Poland / 21
    EUROPE    Zone / Pays / Longitude : Europe/Skopje / North Macedonia / 21.43333
    EUROPE    Zone / Pays / Longitude : Europe/Uzhgorod / Ukraine / 22.3
    EUROPE    Zone / Pays / Longitude : Europe/Sofia / Bulgaria / 23.31666
    EUROPE    Zone / Pays / Longitude : Europe/Athens / Greece / 23.71666
    EUROPE    Zone / Pays / Longitude : Europe/Riga / Latvia / 24.1
    EUROPE    Zone / Pays / Longitude : Europe/Tallinn / Estonia / 24.75
    EUROPE    Zone / Pays / Longitude : Europe/Helsinki / Finland / 24.96666
    EUROPE    Zone / Pays / Longitude : Europe/Vilnius / Lithuania / 25.31666
    EUROPE    Zone / Pays / Longitude : Europe/Bucharest / Romania / 26.1
    EUROPE    Zone / Pays / Longitude : Europe/Minsk / Belarus / 27.56666
    EUROPE    Zone / Pays / Longitude : Europe/Chisinau / Moldova, Republic of / 28.83333
    EUROPE    Zone / Pays / Longitude : Europe/Istanbul / Turkey / 28.96666
    EUROPE    Zone / Pays / Longitude : Europe/Kiev / Ukraine / 30.51666
    EUROPE    Zone / Pays / Longitude : Europe/Simferopol / Ukraine / 34.1
    EUROPE    Zone / Pays / Longitude : Europe/Zaporozhye / Ukraine / 35.16666
    EUROPE    Zone / Pays / Longitude : Europe/Moscow / Russian Federation / 37.61777
    EUROPE    Zone / Pays / Longitude : Europe/Volgograd / Russian Federation / 44.41666
    EUROPE    Zone / Pays / Longitude : Europe/Saratov / Russian Federation / 46.03333
    EUROPE    Zone / Pays / Longitude : Europe/Astrakhan / Russian Federation / 48.05
    EUROPE    Zone / Pays / Longitude : Europe/Ulyanovsk / Russian Federation / 48.4
    EUROPE    Zone / Pays / Longitude : Europe/Kirov / Russian Federation / 49.65
    INDIAN    Zone / Pays / Longitude : Indian/Comoro / Comoros / 43.26666
    INDIAN    Zone / Pays / Longitude : Indian/Mayotte / Mayotte / 45.23333
    INDIAN    Zone / Pays / Longitude : Indian/Antananarivo / Madagascar / 47.51666
    INDIAN    Zone / Pays / Longitude : Indian/Mahe / Seychelles / 55.46666
    INDIAN    Zone / Pays / Longitude : Indian/Reunion / Réunion / 55.46666
    INDIAN    Zone / Pays / Longitude : Indian/Mauritius / Mauritius / 57.5
    INDIAN    Zone / Pays / Longitude : Indian/Kerguelen / French Southern Territories / 70.2175
    INDIAN    Zone / Pays / Longitude : Indian/Chagos / British Indian Ocean Territory / 72.41666
    INDIAN    Zone / Pays / Longitude : Indian/Maldives / Maldives / 73.5
    INDIAN    Zone / Pays / Longitude : Indian/Cocos / Cocos / 96.91666
    PACIFIC    Zone / Pays / Longitude : Pacific/Midway / United States Minor Outlying Islands / -177.36666
    PACIFIC    Zone / Pays / Longitude : Pacific/Chatham / New Zealand / -176.55
    PACIFIC    Zone / Pays / Longitude : Pacific/Wallis / Wallis and Futuna / -176.16666
    PACIFIC    Zone / Pays / Longitude : Pacific/Tongatapu / Tonga / -175.16666
    PACIFIC    Zone / Pays / Longitude : Pacific/Apia / Samoa / -171.73333
    PACIFIC    Zone / Pays / Longitude : Pacific/Fakaofo / Tokelau / -171.23333
    PACIFIC    Zone / Pays / Longitude : Pacific/Enderbury / Kiribati / -171.08333
    PACIFIC    Zone / Pays / Longitude : Pacific/Pago_Pago / American Samoa / -170.7
    PACIFIC    Zone / Pays / Longitude : Pacific/Niue / Niue / -169.91666
    PACIFIC    Zone / Pays / Longitude : Pacific/Rarotonga / Cook Islands / -159.76666
    PACIFIC    Zone / Pays / Longitude : Pacific/Honolulu / United States of America / -157.85833
    PACIFIC    Zone / Pays / Longitude : Pacific/Kiritimati / Kiribati / -157.33333
    PACIFIC    Zone / Pays / Longitude : Pacific/Tahiti / French Polynesia / -149.56666
    PACIFIC    Zone / Pays / Longitude : Pacific/Marquesas / French Polynesia / -139.5
    PACIFIC    Zone / Pays / Longitude : Pacific/Gambier / French Polynesia / -134.94999
    PACIFIC    Zone / Pays / Longitude : Pacific/Pitcairn / Pitcairn / -130.08333
    PACIFIC    Zone / Pays / Longitude : Pacific/Easter / Chile / -109.43333
    PACIFIC    Zone / Pays / Longitude : Pacific/Galapagos / Ecuador / -89.6
    PACIFIC    Zone / Pays / Longitude : Pacific/Palau / Palau / 134.48333
    PACIFIC    Zone / Pays / Longitude : Pacific/Guam / Guam / 144.75
    PACIFIC    Zone / Pays / Longitude : Pacific/Saipan / Northern Mariana Islands / 145.75
    PACIFIC    Zone / Pays / Longitude : Pacific/Port_Moresby / Papua New Guinea / 147.16666
    PACIFIC    Zone / Pays / Longitude : Pacific/Chuuk / Micronesia / 151.78333
    PACIFIC    Zone / Pays / Longitude : Pacific/Bougainville / Papua New Guinea / 155.56666
    PACIFIC    Zone / Pays / Longitude : Pacific/Pohnpei / Micronesia / 158.21666
    PACIFIC    Zone / Pays / Longitude : Pacific/Guadalcanal / Solomon Islands / 160.19999
    PACIFIC    Zone / Pays / Longitude : Pacific/Kosrae / Micronesia / 162.98333
    PACIFIC    Zone / Pays / Longitude : Pacific/Noumea / New Caledonia / 166.44999
    PACIFIC    Zone / Pays / Longitude : Pacific/Wake / United States Minor Outlying Islands / 166.61666
    PACIFIC    Zone / Pays / Longitude : Pacific/Nauru / Nauru / 166.91666
    PACIFIC    Zone / Pays / Longitude : Pacific/Kwajalein / Marshall Islands / 167.33333
    PACIFIC    Zone / Pays / Longitude : Pacific/Norfolk / Norfolk Island / 167.96666
    PACIFIC    Zone / Pays / Longitude : Pacific/Efate / Vanuatu / 168.41666
    PACIFIC    Zone / Pays / Longitude : Pacific/Majuro / Marshall Islands / 171.2
    PACIFIC    Zone / Pays / Longitude : Pacific/Tarawa / Kiribati / 173
    PACIFIC    Zone / Pays / Longitude : Pacific/Auckland / New Zealand / 174.76666
    PACIFIC    Zone / Pays / Longitude : Pacific/Fiji / Fiji / 178.41666
 

ortolojf

WRInaute accro
Bonjour KOogar

J'ai fait une fonction de filtrage avec la longitude ( théorique ) du browser, et l'array des zoneName à filtrer.

Voici le code :

PHP:
<?php
/**
 * Trier
 * par array_zones
 * en ordre croissant
 * des longitudes,
 * mimimum et maximum
 * pour chaques zoneName.
 *
 * Il faut donc trier
 * les zoneName
 * par ordre croissant
 * des longitudes
 * dans chaque
 * array_zone.
 *
 * par [array_zone][indice_tri]
 * pour chaque indice_tri
 * son zoneName et
 * ses longitudes
 * min et max.
 *
 **/
define('MIN', 0);
define('MAX', 1);
define('ZONE', 0);
define('COUNTRY', 1);
define('LONG', 2);
function ALL_offsets()
{
        $array_indice        = array();        // By zone
        $array_sorted_all    = array();        // [MIN] => minimum, [MAX] => maximum - [ZONE] => zoneName, [COUNTRY] => $array_country, [LONG] => $longitude.
        $array_zones = array(
                DateTimeZone::AFRICA,
                DateTimeZone::AMERICA,
                DateTimeZone::ANTARCTICA,
                DateTimeZone::ARCTIC,
                DateTimeZone::ASIA,
                DateTimeZone::ATLANTIC,
                DateTimeZone::AUSTRALIA,
                DateTimeZone::EUROPE,
                DateTimeZone::INDIAN,
                DateTimeZone::PACIFIC);
        /**
        * Parcours
        * de tous les
        * offsets
        * de tous les
        * fuseaux horaires.
        **/
        foreach($array_zones as $value)
        {
                unset($timeZones);
                $timeZones = DateTimeZone::listIdentifiers($value);
                foreach ( $timeZones as $zoneName )
                {
                        unset($dateTimeZone);
                        $dateTimeZone = new DateTimeZone($zoneName);
                        unset($locations);
                        $locations = $dateTimeZone->getLocation();
                        unset($dateTime_now);
                        $dateTime_now = new DateTime("now", $dateTimeZone);
                        unset($timeOffset);
                        $timeOffset = $dateTime_now->getOffset();
                        if(isset($locations['longitude']))
                        {
                                unset($longitude);
                                $longitude = $locations['longitude'];
                                unset($country_code);
                                if(isset($locations['country_code']))
                                {
                                        $country_code = $locations['country_code'];
                                }
                                if(isset($array_indice[$value][MAX]))
                                {
                                        for($i = 0; $i <= $array_indice[$value][MAX]; $i++)
                                        {
                                                if($array_sorted_all[$value][MAX][LONG][$i] > $longitude)
                                                {
                                                        break;
                                                }
                                        }
                                        if($i <= $array_indice[$value][MAX])
                                        {
                                                for($j = $array_indice[$value][MAX]; $j >= $i; $j--)
                                                {
                                                        $array_sorted_all[$value][MAX][ZONE][$j + 1] = $array_sorted_all[$value][MAX][ZONE][$j];
                                                        $array_sorted_all[$value][MAX][COUNTRY][$j + 1] = $array_sorted_all[$value][MAX][COUNTRY][$j];
                                                        $array_sorted_all[$value][MAX][LONG][$j + 1] = $array_sorted_all[$value][MAX][LONG][$j];
                                                }
                                                $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                                $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                                if(isset($country_code))
                                                {
                                                        $array_sorted_all[$value][MAX][COUNTRY][$i] = $country_code;
                                                }
                                        }
                                        else
                                        {
                                                $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                                $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                                if(isset($country_code))
                                                {
                                                        $array_sorted_all[$value][MAX][COUNTRY][$i] = $country_code;
                                                }
                                        }
                                        $array_indice[$value][MAX] = $array_indice[$value][MAX] + 1;
                                }
                                else
                                {
                                        $array_indice[$value][MAX] = 0;
                                        $array_sorted_all[$value][MAX][ZONE][0] = $zoneName;
                                        $array_sorted_all[$value][MAX][LONG][0] = $longitude;
                                        if(isset($country_code))
                                        {
                                                $array_sorted_all[$value][MAX][COUNTRY][0] = $country_code;
                                        }
                                }
                                if(isset($array_indice[$value][MIN]))
                                {
                                        for($i = 0; $i <= $array_indice[$value][MIN]; $i++)
                                        {
                                                if($array_sorted_all[$value][MIN][LONG][$i] > $longitude)
                                                {
                                                        break;
                                                }
                                        }
                                        if($i <= $array_indice[$value][MIN])
                                        {
                                                for($j = $array_indice[$value][MIN]; $j >= $i; $j--)
                                                {
                                                        $array_sorted_all[$value][MIN][ZONE][$j + 1] = $array_sorted_all[$value][MIN][ZONE][$j];
                                                        $array_sorted_all[$value][MIN][COUNTRY][$j + 1] = $array_sorted_all[$value][MIN][COUNTRY][$j];
                                                        $array_sorted_all[$value][MIN][LONG][$j + 1] = $array_sorted_all[$value][MIN][LONG][$j];
                                                }
                                                $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                                $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                                if(isset($country_code))
                                                {
                                                        $array_sorted_all[$value][MIN][COUNTRY][$i] = $country_code;
                                                }
                                        }
                                        else
                                        {
                                                $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                                $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                                if(isset($country_code))
                                                {
                                                        $array_sorted_all[$value][MIN][COUNTRY][$i] = $country_code;
                                                }
                                        }
                                        $array_indice[$value][MIN] = $array_indice[$value][MIN] + 1;
                                }
                                else
                                {
                                        $array_indice[$value][MIN] = 0;
                                        $array_sorted_all[$value][MIN][ZONE][0] = $zoneName;
                                        $array_sorted_all[$value][MIN][LONG][0] = $longitude;
                                        if(isset($country_code))
                                        {
                                                $array_sorted_all[$value][MIN][COUNTRY][0] = $country_code;
                                        }
                                }
                        }
                        else
                        {
                                foreach($locations as $location)
                                {
                                        if(isset($location['longitude']))
                                        {
                                                unset($longitude);
                                                $longitude = $location['longitude'];
                                                unset($country_code);
                                                if(isset($location['country_code']))
                                                {
                                                        $country_code = $location['country_code'];
                                                }
                                                if(isset($array_indice[$value][MAX]))
                                                {
                                                        for($i = 0; $i <= $array_indice[$value][MAX]; $i++)
                                                        {
                                                                if($array_sorted_all[$value][MAX][LONG][$i] > $longitude)
                                                                {
                                                                        break;
                                                                }
                                                        }
                                                        if($i <= $array_indice[$value][MAX])
                                                        {
                                                                for($j = $array_indice[$value][MAX]; $j >= $i; $j--)
                                                                {
                                                                        $array_sorted_all[$value][MAX][ZONE][$j + 1] = $array_sorted_all[$value][MAX][ZONE][$j];
                                                                        $array_sorted_all[$value][MAX][COUNTRY][$j + 1] = $array_sorted_all[$value][MAX][COUNTRY][$j];
                                                                        $array_sorted_all[$value][MAX][LONG][$j + 1] = $array_sorted_all[$value][MAX][LONG][$j];
                                                                }
                                                                $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                                                $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                                                if(isset($country_code))
                                                                {
                                                                        $array_sorted_all[$value][MAX][COUNTRY][$i] = $country_code;
                                                                }
                                                        }
                                                        else
                                                        {
                                                                $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                                                $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                                                if(isset($country_code))
                                                                {
                                                                        $array_sorted_all[$value][MAX][COUNTRY][$i] = $country_code;
                                                                }
                                                        }
                                                        $array_indice[$value][MAX] = $array_indice[$value][MAX] + 1;
                                                }
                                                else
                                                {
                                                        $array_indice[$value][MAX] = 0;
                                                        $array_sorted_all[$value][MAX][ZONE][0] = $zoneName;
                                                        $array_sorted_all[$value][MAX][LONG][0] = $longitude;
                                                        if(isset($country_code))
                                                        {
                                                                $array_sorted_all[$value][MAX][COUNTRY][0] = $country_code;
                                                        }
                                                }
                                                if(isset($array_indice[$value][MIN]))
                                                {
                                                        for($i = 0; $i <= $array_indice[$value][MIN]; $i++)
                                                        {
                                                                if($array_sorted_all[$value][MIN][LONG][$i] > $longitude)
                                                                {
                                                                        break;
                                                                }
                                                        }
                                                        if($i <= $array_indice[$value][MIN])
                                                        {
                                                                for($j = $array_indice[$value][MIN]; $j >= $i; $j--)
                                                                {
                                                                        $array_sorted_all[$value][MIN][ZONE][$j + 1] = $array_sorted_all[$value][MIN][ZONE][$j];
                                                                        $array_sorted_all[$value][MIN][COUNTRY][$j + 1] = $array_sorted_all[$value][MIN][COUNTRY][$j];
                                                                        $array_sorted_all[$value][MIN][LONG][$j + 1] = $array_sorted_all[$value][MIN][LONG][$j];
                                                                }
                                                                $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                                                $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                                                if(isset($country_code))
                                                                {
                                                                        $array_sorted_all[$value][MIN][COUNTRY][$i] = $country_code;
                                                                }
                                                        }
                                                        else
                                                        {
                                                                $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                                                $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                                                if(isset($country_code))
                                                                {
                                                                        $array_sorted_all[$value][MIN][COUNTRY][$i] = $country_code;
                                                                }
                                                        }
                                                        $array_indice[$value][MIN] = $array_indice[$value][MIN] + 1;
                                                }
                                                else
                                                {
                                                        $array_indice[$value][MIN] = 0;
                                                        $array_sorted_all[$value][MIN][ZONE][0] = $zoneName;
                                                        $array_sorted_all[$value][MIN][LONG][0] = $longitude;
                                                        if(isset($country_code))
                                                        {
                                                                $array_sorted_all[$value][MIN][COUNTRY][0] = $country_code;
                                                        }
                                                }
                                        }
                                }
                        }
                }
        }
        return array($array_indice, $array_sorted_all);
}
/**
 * false => bloqué
 * true  => pas bloqué.
 *
 * Paramètre :
 * $array_zone
 * à filtrer.
 **/
function bloque_zone_fuseau($longitude_browser, array $array_zones)
{
        $array_zones_names = array(
                DateTimeZone::AFRICA        => 'DateTimeZone::AFRICA',
                DateTimeZone::AMERICA        => 'DateTimeZone::AMERICA',
                DateTimeZone::ANTARCTICA    => 'DateTimeZone::ANTARCTICA',
                DateTimeZone::ARCTIC        => 'DateTimeZone::ARCTIC',
                DateTimeZone::ASIA            => 'DateTimeZone::ASIA',
                DateTimeZone::ATLANTIC        => 'DateTimeZone::ATLANTIC',
                DateTimeZone::AUSTRALIA        => 'DateTimeZone::AUSTRALIA',
                DateTimeZone::EUROPE        => 'DateTimeZone::EUROPE',
                DateTimeZone::INDIAN        => 'DateTimeZone::INDIAN',
                DateTimeZone::PACIFIC        => 'DateTimeZone::PACIFIC');
        $array_pays = array(
                'AD' => 'Andorra', 
                'AE' => 'United Arab Emirates', 
                'AF' => 'Afghanistan', 
                'AG' => 'Antigua and Barbuda', 
                'AI' => 'Anguilla', 
                'AL' => 'Albania', 
                'AM' => 'Armenia', 
                'AO' => 'Angola', 
                'AQ' => 'Antarctica', 
                'AR' => 'Argentina', 
                'AS' => 'American Samoa', 
                'AT' => 'Austria', 
                'AU' => 'Australia', 
                'AW' => 'Aruba', 
                'AX' => 'Åland Islands', 
                'AZ' => 'Azerbaijan', 
                'BA' => 'Bosnia and Herzegovina', 
                'BB' => 'Barbados', 
                'BD' => 'Bangladesh', 
                'BE' => 'Belgium', 
                'BF' => 'Burkina Faso', 
                'BG' => 'Bulgaria', 
                'BH' => 'Bahrain', 
                'BI' => 'Burundi', 
                'BJ' => 'Benin', 
                'BL' => 'Saint Barthélemy', 
                'BM' => 'Bermuda', 
                'BN' => 'Brunei Darussalam', 
                'BO' => 'Bolivia', 
                'BQ' => 'Bonaire, Sint Eustatius and Saba', 
                'BQ previously represented British Antarctic Territory', 
                'BR' => 'Brazil', 
                'BS' => 'Bahamas', 
                'BT' => 'Bhutan', 
                'BV' => 'Bouvet', 
                'BW' => 'Botswana', 
                'BY' => 'Belarus', 
                'BZ' => 'Belize', 
                'CA' => 'Canada', 
                'CC' => 'Cocos', 
                'CD' => 'Congo, Democratic Republic of the', 
                'CF' => 'Central African Republic', 
                'CG' => 'Congo', 
                'CH' => 'Switzerland', 
                'CI' => 'Côte di\'Ivoire', 
                'CK' => 'Cook Islands', 
                'CL' => 'Chile', 
                'CM' => 'Cameroon', 
                'CN' => 'China', 
                'CO' => 'Colombia', 
                'CR' => 'Costa Rica', 
                'CU' => 'Cuba', 
                'CV' => 'Cabo Verde', 
                'CW' => 'Curaçao', 
                'CX' => 'Christmas Island', 
                'CY' => 'Cyprus', 
                'CZ' => 'Czechia', 
                'DE' => 'Germany', 
                'DJ' => 'Djibouti', 
                'DK' => 'Denmark', 
                'DM' => 'Dominica', 
                'DO' => 'Dominican Republic', 
                'DZ' => 'Algeria', 
                'EC' => 'Ecuador', 
                'EE' => 'Estonia', 
                'EG' => 'Egypt', 
                'EH' => 'Western Sahara', 
                'ER' => 'Eritrea', 
                'ES' => 'Spain', 
                'ET' => 'Ethiopia', 
                'FI' => 'Finland', 
                'FJ' => 'Fiji', 
                'FK' => 'Falkland Islands', 
                'FM' => 'Micronesia', 
                'FO' => 'Faroe Islands', 
                'FR' => 'France', 
                'GA' => 'Gabon', 
                'GB' => 'United Kingdom of Great Britain and Northern Ireland', 
                'GD' => 'Grenada', 
                'GE' => 'Georgia', 
                'GF' => 'French Guiana', 
                'GG' => 'Guernsey', 
                'GH' => 'Ghana', 
                'GI' => 'Gibraltar', 
                'GL' => 'Greenland', 
                'GM' => 'Gambia', 
                'GN' => 'Guinea', 
                'GP' => 'Guadeloupe', 
                'GQ' => 'Equatorial Guinea', 
                'GR' => 'Greece', 
                'GS' => 'South Georgia and the South Sandwich Islands', 
                'GT' => 'Guatemala', 
                'GU' => 'Guam', 
                'GW' => 'Guinea-Bissau', 
                'GY' => 'Guyana', 
                'HK' => 'Hong Kong', 
                'HM' => 'Heard Island and McDonald Islands', 
                'HN' => 'Honduras', 
                'HR' => 'Croatia', 
                'HT' => 'Haiti', 
                'HU' => 'Hungary', 
                'ID' => 'Indonesia', 
                'IE' => 'Ireland', 
                'IL' => 'Israel', 
                'IM' => 'Isle of Man', 
                'IN' => 'India', 
                'IO' => 'British Indian Ocean Territory', 
                'IQ' => 'Iraq', 
                'IR' => 'Iran (Islamic Republic of)', 
                'IS' => 'Iceland', 
                'IT' => 'Italy', 
                'JE' => 'Jersey', 
                'JM' => 'Jamaica', 
                'JO' => 'Jordan', 
                'JP' => 'Japan', 
                'KE' => 'Kenya', 
                'KG' => 'Kyrgyzstan', 
                'KH' => 'Cambodia', 
                'KI' => 'Kiribati', 
                'KM' => 'Comoros', 
                'KN' => 'Saint Kitts and Nevis', 
                'KP' => 'Korea (Democratic People\'s Republic of)', 
                'KR' => 'Korea, Republic of', 
                'KW' => 'Kuwait', 
                'KY' => 'Cayman Islands', 
                'KZ' => 'Kazakhstan', 
                'LA' => 'Lao People\'s Democratic Republic', 
                'LB' => 'Lebanon', 
                'LC' => 'Saint Lucia', 
                'LI' => 'Liechtenstein', 
                'LK' => 'Sri Lanka', 
                'LR' => 'Liberia', 
                'LS' => 'Lesotho', 
                'LT' => 'Lithuania', 
                'LU' => 'Luxembourg', 
                'LV' => 'Latvia', 
                'LY' => 'Libya', 
                'MA' => 'Morocco', 
                'MC' => 'Monaco', 
                'MD' => 'Moldova, Republic of', 
                'ME' => 'Montenegro', 
                'MF' => 'Saint Martin (French part)', 
                'MG' => 'Madagascar', 
                'MH' => 'Marshall Islands', 
                'MK' => 'North Macedonia', 
                'ML' => 'Mali', 
                'MM' => 'Myanmar', 
                'MN' => 'Mongolia', 
                'MO' => 'Macao', 
                'MP' => 'Northern Mariana Islands', 
                'MQ' => 'Martinique', 
                'MR' => 'Mauritania', 
                'MS' => 'Montserrat', 
                'MT' => 'Malta', 
                'MU' => 'Mauritius', 
                'MV' => 'Maldives', 
                'MW' => 'Malawi', 
                'MX' => 'Mexico', 
                'MY' => 'Malaysia', 
                'MZ' => 'Mozambique', 
                'NA' => 'Namibia', 
                'NC' => 'New Caledonia', 
                'NE' => 'Niger', 
                'NF' => 'Norfolk Island', 
                'NG' => 'Nigeria', 
                'NI' => 'Nicaragua', 
                'NL' => 'Netherlands', 
                'NO' => 'Norway', 
                'NP' => 'Nepal', 
                'NR' => 'Nauru', 
                'NU' => 'Niue', 
                'NZ' => 'New Zealand', 
                'OM' => 'Oman', 
                'PA' => 'Panama', 
                'PE' => 'Peru', 
                'PF' => 'French Polynesia', 
                'PG' => 'Papua New Guinea', 
                'PH' => 'Philippines', 
                'PK' => 'Pakistan', 
                'PL' => 'Poland', 
                'PM' => 'Saint Pierre and Miquelon', 
                'PN' => 'Pitcairn', 
                'PR' => 'Puerto Rico', 
                'PS' => 'Palestine, State of', 
                'PT' => 'Portugal', 
                'PW' => 'Palau', 
                'PY' => 'Paraguay', 
                'QA' => 'Qatar', 
                'RE' => 'Réunion', 
                'RO' => 'Romania', 
                'RS' => 'Serbia', 
                'RU' => 'Russian Federation', 
                'RW' => 'Rwanda', 
                'SA' => 'Saudi Arabia', 
                'SB' => 'Solomon Islands', 
                'SC' => 'Seychelles', 
                'SD' => 'Sudan', 
                'SE' => 'Sweden', 
                'SG' => 'Singapore', 
                'SH' => 'Saint Helena, Ascension and Tristan da Cunha', 
                'SI' => 'Slovenia', 
                'SJ' => 'Svalbard and Jan Mayen', 
                'SK' => 'Slovakia', 
                'SL' => 'Sierra Leone', 
                'SM' => 'San Marino', 
                'SN' => 'Senegal', 
                'SO' => 'Somalia', 
                'SR' => 'Suriname', 
                'SS' => 'South Sudan', 
                'ST' => 'Sao Tome and Principe', 
                'SV' => 'El Salvador', 
                'SX' => 'Sint Maarten (Dutch part)', 
                'SY' => 'Syrian Arab Republic', 
                'SZ' => 'Eswatini', 
                'TC' => 'Turks and Caicos Islands', 
                'TD' => 'Chad', 
                'TF' => 'French Southern Territories', 
                'TG' => 'Togo', 
                'TH' => 'Thailand', 
                'TJ' => 'Tajikistan', 
                'TK' => 'Tokelau', 
                'TL' => 'Timor-Leste', 
                'TM' => 'Turkmenistan', 
                'TN' => 'Tunisia', 
                'TO' => 'Tonga', 
                'TR' => 'Turkey', 
                'TT' => 'Trinidad and Tobago', 
                'TV' => 'Tuvalu', 
                'TW' => 'Taiwan, Province of China', 
                'TZ' => 'Tanzania, United Republic of', 
                'UA' => 'Ukraine', 
                'UG' => 'Uganda', 
                'UM' => 'United States Minor Outlying Islands', 
                'US' => 'United States of America', 
                'UY' => 'Uruguay', 
                'UZ' => 'Uzbekistan', 
                'VA' => 'Holy See', 
                'VC' => 'Saint Vincent and the Grenadines', 
                'VE' => 'Venezuela (Bolivarian Republic of)', 
                'VG' => 'Virgin Islands (British)', 
                'VI' => 'Virgin Islands (U.S.)', 
                'VN' => 'Viet Nam', 
                'VU' => 'Vanuatu', 
                'WF' => 'Wallis and Futuna', 
                'WS' => 'Samoa', 
                'YE' => 'Yemen', 
                'YT' => 'Mayotte', 
                'ZA' => 'South Africa', 
                'ZM' => 'Zambia', 
                'ZW' => 'Zimbabwe');
        $array_result = array();
        $array_result = ALL_offsets();
        foreach($array_zones_names as $key => $value)
        {
                unset($indice_min);
                unset($indice_max);
                $indice_min = $array_result[0][$key][MIN];
                $indice_max = $array_result[0][$key][MAX];
                unset($indice);
                $indice = min($indice_min, $indice_max);
                for($i = 0; $i < $indice; $i++)
                {
                        if($i < ($indice - 1))
                        {
                                unset($code_country_min);
                                unset($code_country_max);
                                $code_country_min = (isset($array_result[1][$key][MIN][COUNTRY][$i])) ? $array_result[1][$key][MIN][COUNTRY][$i] : $array_result[1][$key][MAX][COUNTRY][$i]; 
                                $code_country_max = (isset($array_result[1][$key][MAX][COUNTRY][$i])) ? $array_result[1][$key][MAX][COUNTRY][$i] : $array_result[1][$key][MIN][COUNTRY][$i]; 
                                unset($code_country_min_after);
                                unset($code_country_max_after);
                                $code_country_min_after = (isset($array_result[1][$key][MIN][COUNTRY][$i + 1])) ? $array_result[1][$key][MIN][COUNTRY][$i + 1] : $array_result[1][$key][MAX][COUNTRY][$i + 1]; 
                                $code_country_max_after = (isset($array_result[1][$key][MAX][COUNTRY][$i + 1])) ? $array_result[1][$key][MAX][COUNTRY][$i +1] : $array_result[1][$key][MIN][COUNTRY][$i + 1]; 
                                unset($zone_min);
                                unset($zone_max);
                                $zone_min = (!empty($array_result[1][$key][MIN][ZONE][$i])) ? $array_result[1][$key][MIN][ZONE][$i] : $array_result[1][$key][MAX][ZONE][$i];
                                $zone_max = (!empty($array_result[1][$key][MAX][ZONE][$i])) ? $array_result[1][$key][MAX][ZONE][$i] : $array_result[1][$key][MIN][ZONE][$i];
                                unset($zone_min_after);
                                unset($zone_max_after);
                                $zone_min_after = (!empty($array_result[1][$key][MIN][ZONE][$i + 1])) ? $array_result[1][$key][MIN][ZONE][$i + 1] : $array_result[1][$key][MAX][ZONE][$i + 1];
                                $zone_max_after = (!empty($array_result[1][$key][MAX][ZONE][$i + 1])) ? $array_result[1][$key][MAX][ZONE][$i + 1] : $array_result[1][$key][MIN][ZONE][$i + 1];
                                unset($long_min);
                                unset($long_max);
                                $long_min = ($array_result[1][$key][MIN][LONG][$i] != 5000000.0) ? $array_result[1][$key][MIN][LONG][$i] : 0;
                                $long_max = ($array_result[1][$key][MAX][LONG][$i] != 5000000.0) ? $array_result[1][$key][MAX][LONG][$i] : 0;
                                unset($long_min_after);
                                unset($long_max_after);
                                $long_min_after = ($array_result[1][$key][MIN][LONG][$i + 1] != 5000000.0) ? $array_result[1][$key][MIN][LONG][$i + 1] : 0;
                                $long_max_after = ($array_result[1][$key][MAX][LONG][$i + 1] != 5000000.0) ? $array_result[1][$key][MAX][LONG][$i + 1] : 0;
                                unset($continent);
                                $continent = preg_replace("{^DateTimeZone::}", "", $value);
                                unset($code_country);
                                unset($code_country_after);
                                unset($zone);
                                unset($zone_after);
                                unset($long);
                                unset($long_after);
                                if(($code_country_min == $code_country_max) &&
                                        ($code_country_min_after == $code_country_max_after) &&
                                        ($zone_min == $zone_max) &&
                                        ($zone_min_after == $zone_max_after) &&
                                        ($long_min == $long_max)&&
                                        ($long_min_after == $long_max_after))
                                {
                                        $code_country = $code_country_min;
                                        $code_country_after = $code_country_min_after;
                                        $zone = $zone_min;
                                        $zone_after = $zone_min_after;
                                        $long = $long_min;
                                        $long_after = $long_min_after;
                                        if(($longitude_browser >= $long)&&
                                                ($longitude_browser <= $long_after)&&
                                                ((in_array($zone, $array_zones))||
                                                (in_array($zone_after, $array_zones))))
                                        {
                                                echo "<br />\t" . 'Longitude à filtrer : ';
                                                echo $longitude_browser . "<br /><br />\n";
                                                echo "\t" . $continent;
                                                echo "\t" . 'Pays / Longitude / Zone / : ';
                                                echo $array_pays[$code_country_min] . ' / ' . $long . ' / ' . $zone . "<br />\n";
                                                echo "\t" . $continent;
                                                echo "\t" . 'Pays / Longitude / Zone / : ';
                                                echo $array_pays[$code_country_min_after] . ' / ' . $long_after . ' / ' . $zone_after . "<br />\n";
                                                echo "<br />\n";
                                                echo "\t\tConnexion blocked.<br /><br />\n";
                                                /**
                                                * la longitude
                                                * du browser
                                                * indique
                                                * un zoneName
                                                * qui est
                                                * dans la liste
                                                * des zoneName
                                                * à filtrer.
                                                **/
                                                return true;
                                        }
                                        elseif(($longitude_browser >= $long)&&
                                                ($longitude_browser <= $long_after))
                                        {
                                                echo "\t" . $continent;
                                                echo "\t" . 'Pays / Longitude / Zone / : ';
                                                echo $array_pays[$code_country_min] . ' / ' . $long . ' / ' . $zone . "<br />\n";
                                                echo "\t" . $continent;
                                                echo "\t" . 'Pays / Longitude / Zone / : ';
                                                echo $array_pays[$code_country_min_after] . ' / ' . $long_after . ' / ' . $zone_after . "<br />\n";
                                                echo "<br />\n";
                                        }
                                }
                        }
                }
        }
        echo "\t\tYou are allowed to connect.<br /><br />\n";
        return false;
}

bloque_zone_fuseau(2.4, array('Europe/Paris'));
?>

Résultat :

Code:
    AFRICA    Pays / Longitude / Zone / : Niger / 2.11666 / Africa/Niamey<br />
    AFRICA    Pays / Longitude / Zone / : Benin / 2.61666 / Africa/Porto-Novo<br />
<br />
    ANTARCTICA    Pays / Longitude / Zone / : Antarctica / -64.09999 / Antarctica/Palmer<br />
    ANTARCTICA    Pays / Longitude / Zone / : Antarctica / 2.53499 / Antarctica/Troll<br />
<br />
<br />    Longitude à filtrer : 2.4<br /><br />
    EUROPE    Pays / Longitude / Zone / : France / 2.33333 / Europe/Paris<br />
    EUROPE    Pays / Longitude / Zone / : Belgium / 4.33333 / Europe/Brussels<br />
<br />
        Connexion blocked.<br /><br />
 

ortolojf

WRInaute accro
Bonjour

Voilà le petit programme donnant théoriquement la longitude du browser par rapport à UTC :

https://www.pronostics-courses.fr/longitude.php

Il semble que l'heure locale ait des secondes fausses.

A partir de Paris heure d'hiver ( UTC + 1 ), j'obtiens du 14° ou 15° de longitude.

Ce programme est un préliminaire à la routine de filtrage.

Je ne sais pas encore comment savoir le zoneName ( ex.
'Europe/Paris' ) à partir de la longitude.

C'est seulement si le zoneName peut être un critère de filtrage.

Essayez si vous voulez.

Amicalement.
 

ortolojf

WRInaute accro
Voilà, voilà

Voici l'url à tester :

http://www.pronostics-courses.fr/bloque_zoneName.php

Il calcule la longitude du browser / UTC, et en fonction du paramètre zoneName=, indique ou non 'blocked'.

Le calcul de longitude de mon browser semble foireux, j'obtiens environ 14° par rapport à UTC.

Je suis à Europe/Paris.

Je donnerai le programme entier après.

Le code pour la longitude :

PHP:
<?php
session_start();
/**
 * Le timestamp
 * donne l'heure locale
 * du browser.
 *
 * Il y a filtrage
 * ( rend false ),
 * si la longitude
 * du browser
 * est dans
 * l'intervalle
 * filtré.
 **/
function LongitudeBrowser(int $timestamp)
{
    //    var timestamp = 12 * 50 * 24 * 60 * 60 * year + 50 * 24 * 60 * 60 * month + 24 * 60 * 60 * day + 60 * 60 * hour + 60 * minute + second;\n";
    $year = floor($timestamp / (12 * 50 * 24 * 60 * 60));
    $timestamp %= (12 * 50 * 24 * 60 * 60);
    $month = floor($timestamp / (50 * 24 * 60 * 60));
    $timestamp %= (50 * 24 * 60 * 60);
    $day = floor($timestamp / (24 * 60 * 60));
    $timestamp %= (24 * 60 * 60);
    $hour = floor($timestamp / (60 * 60));
    $timestamp %= (60 * 60);
    $minute = floor($timestamp / 60);
    $second = $minute % 60;
    $date_locale = $year . "-" . substr("00" . $month, -2) . "-" . substr("00" . $day, -2) . " " . substr("00". $hour, -2) . ":" . substr("0" . $minute, -2) . ":" . substr("00" . $second,- 2);
    $date_browser = new DateTime($date_locale, new DateTimeZone('UTC'));
    $date_now = new DateTime("now", new DateTimeZone('UTC'));
    /**
    * Calcul décalage
    * Browser => UTC.
    **/
    $decalage_utc_browser = $date_browser->diff($date_now);
    /**
    * Calcul offset
    * Browser => UTC.
    **/
    $offset_utc_browser = $decalage_utc_browser->format('%H:%I:%s');
    $_SESSION['decalage'] = $offset_utc_browser;
    /**
    * Calcul
    * nombre
    * de degrés
    * Browser => UTC.
    **/
    $array_offset = array();
    $array_offset = explode(':', $offset_utc_browser);
    $delta_utc_browser = 3600 * $array_offset[0] + 60 * $array_offset[1] + $array_offset[2];
    /**
    * Calcul
    * de la différence
    * de longitude
    * entre le browser
    * et UTC.
    **/
    $long_utc_browser = $delta_utc_browser * (360.0 / (24.0 * 3600.0));
    $_COOKIE['longitude'] = $long_utc_browser;
    echo "\tLongitude du Browser = ";
    echo $long_utc_browser;
    echo "<br /><br />\n";
    return $long_utc_browser;
}
function bloque_zoneNames($title, array $array_zoneNames)
{
    if(!isset($_GET['timestamp']))
    {
        $str  = "<!DOCTYPE html>\n";
        $str .= "<html lang=\"fr\">\n";
        $str .= "<head>\n";
        $str .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
        $str .= "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
        $str .= "<script>\n";
        $str .= "\n";
        $str .= "    window.newLocation = function( location ) {\n";
        $str .= "        var newLocation = ( typeof location === 'string' ) ? location : window.location.href;\n";
        $str .= "        var appendType = ( newLocation.indexOf('?') < 0 ) ? '?' : '&';\n";
        $str .= "        window.location = newLocation + appendType + '_t=' + (new Date()).getTime();\n";
        $str .= "    }\n";
        $str .= "\n";
        $str .= "function lien() {\n";
        $str .= "    var date_visitor = new Date();\n";
        $str .= "    var year    = date_visitor.getFullYear();\n";
        $str .= "    var month    = 1 + date_visitor.getMonth();\n";
        $str .= "    var day    = date_visitor.getDate();\n";
        $str .= "    var hour    = date_visitor.getHours();\n";
        $str .= "    var minute    = date_visitor.getMinutes();\n";
        $str .= "    var second    = date_visitor.getSeconds();\n";
        $str .= "\n";
        $str .= "    var timestamp = 12 * 50 * 24 * 60 * 60 * year + 50 * 24 * 60 * 60 * month + 24 * 60 * 60 * day + 60 * 60 * hour + 60 * minute + second;\n";
        $str .= "\n";
        $str .= "    var  chainurl='" . $_SERVER['PHP_SELF'] . "?zoneName=" . $_GET['zoneName'] . "&timestamp=' + timestamp;\n";
        $str .= "    window.newLocation(chainurl);\n";
        $str .= "}\n";
        $str .= "</script>\n";
        $str .= "<title>" . $title . "</title>\n";
        $str .= "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n";
        $str .= "</head>\n";
        echo $str;
        echo "<body onLoad=lien()>\n";
        return null;
    }
    else if (!isset($_SESSION['decalage']))
    {
        if(isset($_GET['timestamp']))
        {
            $timestamp = (int)$_GET['timestamp'];
            $long_browser = LongitudeBrowser($timestamp);
            return bloque_zone_fuseau($long_browser, $array_zoneNames);
        }
    }
}
$title = "Page d'accueil";
$array_zoneNames = array();
if(!isset($_GET['zoneName']))
{
    echo "\t\t\tUsage : " . $_SERVER['PHP_SELF'] . '?zoneName=value' . "<br /><br />\n";
    echo "\t\t\tExemple : " . $_SERVER['PHP_SELF'] . "?zoneName=Europe/Paris" . "<br /><br />\n";
    exit(-1);
}
$zoneName = $_GET['zoneName'];
bloque_zoneNames($title, array($zoneName));
echo "<br /><br />\n";
session_destroy();
?>
 

ortolojf

WRInaute accro
Pardon

Le problème c'est probablement le getTransitions[isdst], heure été/hiver.

A supposer que je prenne la longitude corrigée pour un isdst égal à 0, il faudrait que dans le cas où isdst = 1, j'enlève 15° de la longitude.

Ceci, dans la fonction LongitudeBrowser() et dans la fonction appelée par bloque_zoneNames().

Pas à pas.

Amicalement.
 

ortolojf

WRInaute accro
Bonjour

Merci de me dire si la formule suivante est correcte ( en Javascript ) :

var offsetBrowser = -1 * today.getTimezoneOffset() - 60 * isDST;\n";

isDST = 0 heure d'hiver, 1 heure d'été de l'heure locale.

today = new Date;

L'offset est négatif si UTC + n , n > 0.

Je corrige en multipliant par -1.

Merci beaucoup de votre aide.
 

ortolojf

WRInaute accro
Bonjour

Testez si vous voulez :

https://www.pronostics-courses.fr/tmp.php?zoneName=Europe/Paris

Ou avec d'autres zones.

Si la zone à filtrer correspond à la longitude du browser ( en tenant compte éventuellement du isDST ), alors c'est bloqué.

Dans tous les cas, la longitude du browser y est.

J'ai un bug dans le calcul des longitudes, car Paris devrait être environ 0° et non pas 15°.

Mais le bug semble affecter toutes les longitudes.

Amicalement.
 
Dernière édition:

ortolojf

WRInaute accro
Voilà, pour KOogar

Je trie les longitudes en les insérant dans la variable indicée : $array_sorted_all[].

Je pourrais je crois ne pas les trier.

Le code entier de filtrage ( PHP + Javascript ) :

PHP:
<?php
session_start();
/**
 * Trier
 * par array_zones
 * en ordre croissant
 * des longitudes,
 * mimimum et maximum
 * pour chaques zoneName.
 *
 * Il faut donc trier
 * les zoneName
 * par ordre croissant
 * des longitudes
 * dans chaque
 * array_zone.
 *
 * par [array_zone][indice_tri]
 * pour chaque indice_tri
 * son zoneName et
 * ses longitudes
 * min et max.
 *
 **/
define('MIN', 0);
define('MAX', 1);
define('ZONE', 0);
define('LONG', 1);
function readTransition(array $transitions)
{
        foreach($transitions as $transition)
        {
                $time    = $transition['time'];
                $offset    = $transition['offset'];
                $isdst    = (int)$transition['isdst'];
                if($isdst == 1)
                {
                        continue;
                }
                return array('ISDST' => $isdst,
                        'TIME' => $time,
                        'OFFSET' => $offset);
        }
        return array('ISDST' => $isdst,
                'TIME' => $time,
                'OFFSET' => $offset);
}
function ALL_geoData()
{
        $now = time();
        $array_indice        = array();        // By zone
        $array_sorted_all    = array();        // [MIN] => minimum, [MAX] => maximum - [ZONE] => zoneName, [LONG] => $longitude.
        $array_zones = array(
                DateTimeZone::AFRICA,
                DateTimeZone::AMERICA,
                DateTimeZone::ANTARCTICA,
                DateTimeZone::ARCTIC,
                DateTimeZone::ASIA,
                DateTimeZone::ATLANTIC,
                DateTimeZone::AUSTRALIA,
                DateTimeZone::EUROPE,
                DateTimeZone::INDIAN,
                DateTimeZone::PACIFIC);
        /**
        * Parcours
        * de tous les
        * offsets
        * de tous les
        * fuseaux horaires.
        **/
        foreach($array_zones as $value)
        {
                unset($timeZones);
                $timeZones = DateTimeZone::listIdentifiers($value);
                foreach ( $timeZones as $zoneName )
                {
                        unset($dateTimeZone);
                        $dateTimeZone = new DateTimeZone($zoneName);
                        unset($transitions);
                        $transitions = $dateTimeZone->getTransitions($now, $now);
                        unset($array_transitions);
                        $array_transitions = readTransition($transitions);
                        unset($tmp_isdst);
                        unset($tmp_time);
                        unset($tmp_offset);
                        $tmp_isdst    = $array_transitions['ISDST'];
                        $tmp_time    = $array_transitions['TIME'];
                        $tmp_offset    = $array_transitions['OFFSET'];
                        unset($longitude);
                        $longitude = ($tmp_offset - (3600.0 * $tmp_isdst)) * (360.0 / (24.0 * 3600.0));
                        if(isset($array_indice[$value][MAX]))
                        {
                                for($i = 0; $i <= $array_indice[$value][MAX]; $i++)
                                {
                                        if($array_sorted_all[$value][MAX][LONG][$i] > $longitude)
                                        {
                                                break;
                                        }
                                }
                                if($i <= $array_indice[$value][MAX])
                                {
                                        for($j = $array_indice[$value][MAX]; $j >= $i; $j--)
                                        {
                                                $array_sorted_all[$value][MAX][ZONE][$j + 1] = $array_sorted_all[$value][MAX][ZONE][$j];
                                                $array_sorted_all[$value][MAX][LONG][$j + 1] = $array_sorted_all[$value][MAX][LONG][$j];
                                        }
                                        $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                        $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                }
                                else
                                {
                                        $array_sorted_all[$value][MAX][ZONE][$i] = $zoneName;
                                        $array_sorted_all[$value][MAX][LONG][$i] = $longitude;
                                }
                                $array_indice[$value][MAX] = $array_indice[$value][MAX] + 1;
                        }
                        else
                        {
                                $array_indice[$value][MAX] = 0;
                                $array_sorted_all[$value][MAX][ZONE][0] = $zoneName;
                                $array_sorted_all[$value][MAX][LONG][0] = $longitude;
                        }
                        if(isset($array_indice[$value][MIN]))
                        {
                                for($i = 0; $i <= $array_indice[$value][MIN]; $i++)
                                {
                                        if($array_sorted_all[$value][MIN][LONG][$i] > $longitude)
                                        {
                                                break;
                                        }
                                }
                                if($i <= $array_indice[$value][MIN])
                                {
                                        for($j = $array_indice[$value][MIN]; $j >= $i; $j--)
                                        {
                                                $array_sorted_all[$value][MIN][ZONE][$j + 1] = $array_sorted_all[$value][MIN][ZONE][$j];
                                                $array_sorted_all[$value][MIN][LONG][$j + 1] = $array_sorted_all[$value][MIN][LONG][$j];
                                        }
                                        $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                        $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                }
                                else
                                {
                                        $array_sorted_all[$value][MIN][ZONE][$i] = $zoneName;
                                        $array_sorted_all[$value][MIN][LONG][$i] = $longitude;
                                }
                                $array_indice[$value][MIN] = $array_indice[$value][MIN] + 1;
                        }
                        else
                        {
                                $array_indice[$value][MIN] = 0;
                                $array_sorted_all[$value][MIN][ZONE][0] = $zoneName;
                                $array_sorted_all[$value][MIN][LONG][0] = $longitude;
                        }
                }
        }
        return array($array_indice, $array_sorted_all);
}
/**
 * false => bloqué
 * true  => pas bloqué.
 *
 * Paramètre :
 * $array_zone
 * à filtrer.
 **/
function bloque_zone_fuseau(float $longitude_browser, array $array_zoneNames)
{
        $array_zones_names = array(
                DateTimeZone::AFRICA        => 'DateTimeZone::AFRICA',
                DateTimeZone::AMERICA        => 'DateTimeZone::AMERICA',
                DateTimeZone::ANTARCTICA    => 'DateTimeZone::ANTARCTICA',
                DateTimeZone::ARCTIC        => 'DateTimeZone::ARCTIC',
                DateTimeZone::ASIA            => 'DateTimeZone::ASIA',
                DateTimeZone::ATLANTIC        => 'DateTimeZone::ATLANTIC',
                DateTimeZone::AUSTRALIA        => 'DateTimeZone::AUSTRALIA',
                DateTimeZone::EUROPE        => 'DateTimeZone::EUROPE',
                DateTimeZone::INDIAN        => 'DateTimeZone::INDIAN',
                DateTimeZone::PACIFIC        => 'DateTimeZone::PACIFIC');
        echo "<br />\t" . 'Longitude à filtrer : ';
        echo $longitude_browser . "<br /><br />\n";
        echo "\t" . 'Zone à filtrer : ';
        print_r($array_zoneNames);
        echo "<br /><br />\n";
        $array_result = array();
        $array_result = ALL_geoData();
        foreach($array_zones_names as $key => $value)
        {
                unset($indice_min);
                unset($indice_max);
                $indice_min = $array_result[0][$key][MIN];
                $indice_max = $array_result[0][$key][MAX];
                unset($indice);
                $indice = min($indice_min, $indice_max);
                for($i = 0; $i < $indice; $i++)
                {
                        unset($zone_min);
                        unset($zone_max);
                        $zone_min = (!empty($array_result[1][$key][MIN][ZONE][$i])) ? $array_result[1][$key][MIN][ZONE][$i] : $array_result[1][$key][MAX][ZONE][$i];
                        $zone_max = (!empty($array_result[1][$key][MAX][ZONE][$i])) ? $array_result[1][$key][MAX][ZONE][$i] : $array_result[1][$key][MIN][ZONE][$i];
                        unset($zone_min_after);
                        unset($zone_max_after);
                        $zone_min_after = (!empty($array_result[1][$key][MIN][ZONE][$i + 1])) ? $array_result[1][$key][MIN][ZONE][$i + 1] : $array_result[1][$key][MAX][ZONE][$i + 1];
                        $zone_max_after = (!empty($array_result[1][$key][MAX][ZONE][$i + 1])) ? $array_result[1][$key][MAX][ZONE][$i + 1] : $array_result[1][$key][MIN][ZONE][$i + 1];
                        unset($long_min);
                        unset($long_max);
                        $long_min = ($array_result[1][$key][MIN][LONG][$i] != 5000000.0) ? $array_result[1][$key][MIN][LONG][$i] : 0;
                        $long_max = ($array_result[1][$key][MAX][LONG][$i] != 5000000.0) ? $array_result[1][$key][MAX][LONG][$i] : 0;
                        unset($long_min_after);
                        unset($long_max_after);
                        $long_min_after = ($array_result[1][$key][MIN][LONG][$i + 1] != 5000000.0) ? $array_result[1][$key][MIN][LONG][$i + 1] : 0;
                        $long_max_after = ($array_result[1][$key][MAX][LONG][$i + 1] != 5000000.0) ? $array_result[1][$key][MAX][LONG][$i + 1] : 0;
                        unset($continent);
                        $continent = preg_replace("{^DateTimeZone::}", "", $value);
                        unset($zone);
                        unset($zone_after);
                        unset($long);
                        unset($long_after);
                        if(($zone_min == $zone_max) &&
                                ($zone_min_after == $zone_max_after) &&
                                ($long_min == $long_max)&&
                                ($long_min_after == $long_max_after))
                        {
                                $zone = $zone_min;
                                $zone_after = $zone_min_after;
                                $long = $long_min;
                                $long_after = $long_min_after;
                                if(($longitude_browser >= $long)&&
                                        ($longitude_browser <= $long_after)&&
                                        ((in_array($zone, $array_zoneNames))||
                                        in_array($zone_after, $array_zoneNames)))
                                {
                                        echo "\t" . $continent;
                                        echo "\t" . 'Longitude / Zone / : ';
                                        echo $long . ' / ' . $zone . "<br />\n";
                                        echo "\t" . $continent;
                                        echo "\t" . 'Longitude / Zone / : ';
                                        echo $long_after . ' / ' . $zone_after . "<br />\n";
                                        echo "<br />\n";
                                        echo "\t\tConnexion blocked.<br /><br />\n";
                                        /**
                                        * la longitude
                                        * du browser
                                        * indique
                                        * un zoneName
                                        * qui est
                                        * dans la liste
                                        * des zoneName
                                        * à filtrer.
                                        **/
                                        return false;
                                }
                        }
                }
        }
        echo "\t\tYou are allowed to connect.<br /><br />\n";
        return true;
}
function bloque_zoneNames($title, array $array_zoneNames)
{
        if(!isset($_GET['offset']))
        {
                $str  = "<!DOCTYPE html>\n";
                $str .= "<html lang=\"fr\">\n";
                $str .= "<head>\n";
                $str .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
                $str .= "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
                $str .= "<script>\n";
                $str .= "\n";
                $str .= "    window.newLocation = function( location ) {\n";
                $str .= "        var newLocation = ( typeof location === 'string' ) ? location : window.location.href;\n";
                $str .= "        var appendType = ( newLocation.indexOf('?') < 0 ) ? '?' : '&';\n";
                $str .= "        window.location = newLocation + appendType + '_t=' + (new Date()).getTime();\n";
                $str .= "    }\n";
                $str .= "\n";
                $str .= "function is_DST_Used_In_This_TimeZone(todayDate) {\n";
                $str .= "\n";
                $str .= "        var Jan_Date, July_Date, today;\n";
                $str .= "        var jan_Timezone_OffSet, july_Timezone_OffSet, today_Timezone_OffSet;\n";
                $str .= "\n";
                $str .= "        var offsetsNotEqual, thisYear, offsetsTodayNotEqual, isDST;\n";
                $str .= "\n";
                $str .= "        thisYear = todayDate.getFullYear();//Get the year as a number;\n";
                $str .= "        today_Timezone_OffSet = todayDate.getTimezoneOffset();\n";
                $str .= "\n";
                $str .= "        Jan_Date = new Date(thisYear, 0, 1);//Month is zero indexed - Jan is zero;\n";
                $str .= "        jan_Timezone_OffSet = Jan_Date.getTimezoneOffset();\n";
                $str .= "\n";
                $str .= "        console.log('jan_Timezone_OffSet: ' + jan_Timezone_OffSet);\n";
                $str .= "\n";
                $str .= "        July_Date = new Date(thisYear, 6, 1);\n";
                $str .= "        july_Timezone_OffSet = July_Date.getTimezoneOffset();\n";
                $str .= "\n";
                $str .= "        console.log('july_Timezone_OffSet: ' + july_Timezone_OffSet);\n";
                $str .= "\n";
                $str .= "        offsetsNotEqual = july_Timezone_OffSet !== jan_Timezone_OffSet;//True if not equal;\n";
                $str .= "\n";
                $str .= "        console.log('offsetsNotEqual: ' + offsetsNotEqual);\n";
                $str .= "\n";
                $str .= "        offsetsTodayNotEqual = jan_Timezone_OffSet !== today_Timezone_OffSet;//True if not equal;\n";
                $str .= "\n";
                $str .= "        isDST = offsetsNotEqual && offsetsTodayNotEqual;\n";
                $str .= "\n";
                $str .= "        /************************************************/\n";
                $str .= "        /**    If the offsets are not equal for summer and    */\n";
                $str .= "        /**    winter and for winter and today                */\n";
                $str .= "        /**    then the only possible reason is that DST    */\n";
                $str .= "        /**    is activated for this time zone.            */\n";
                $str .= "        /************************************************/\n";
                $str .= "        return isDST;\n";
                $str .= "}\n";
                $str .= "\n";
                $str .= "function lien() {\n";
                $str .= "\n";
                $str .= "    var today = new Date();//Create a date object that is now;\n";
                $str .= "    var isDST = is_DST_Used_In_This_TimeZone(today);\n";
                $str .= "\n";
                $str .= "    /************************************************/\n";
                $str .= "    /**            Browser offset in minutes            */\n";
                $str .= "    /************************************************/\n";
                $str .= "    var offsetBrowser = -1 * today.getTimezoneOffset() - 60 * isDST;\n";
                $str .= "\n";
                $str .= "    var  chainurl='" . $_SERVER['PHP_SELF'] . "?zoneName=" . $_GET['zoneName'] . "&offset=' + offsetBrowser;\n";
                $str .= "\n";
                $str .= "    window.newLocation(chainurl);\n";
                $str .= "}\n";
                $str .= "</script>\n";
                $str .= "<title>" . $title . "</title>\n";
                $str .= "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n";
                $str .= "</head>\n";
                echo $str;
                echo "<body onLoad=lien()>\n";
                return null;
        }
        else if (!isset($_SESSION['longitude_browser']))
        {
                if(isset($_GET['offset']))
                {
                        $offset = (int)$_GET['offset'];
                        $longitude_browser = $offset * (360.0 / (24.0 * 60.0));
                        $_SESSION['longitude_browser'] = $longitude_browser;
                        return bloque_zone_fuseau($longitude_browser, $array_zoneNames);
                }
        }
}
$title = "Page d'accueil";
$array_zoneNames = array();
if(!isset($_GET['zoneName']))
{
        echo "\t\t\tUsage : " . $_SERVER['PHP_SELF'] . '?zoneName=value' . "<br /><br />\n";
        echo "\t\t\tExemple : " . $_SERVER['PHP_SELF'] . "?zoneName=Europe/Paris" . "<br /><br />\n";
        exit(-1);
}
$zoneName = $_GET['zoneName'];
bloque_zoneNames($title, array($zoneName));
echo "<br /><br />\n";
session_destroy();
?>
 

Discussions similaires

Haut