@ 2016-01-12T11:08:05Z <?php
class TimeZone
{
const NO_TIMEZONE = 0;
const ASIA_YEKATERINBURG = 310;
const EUROPE_KALININGRAD = 390;
const EUROPE_MONACO = 400;
const EUROPE_MOSCOW = 401;
const EUROPE_SAMARA = 409;
const ROC = 492;
const ROK = 493;
const UCT = 494;
const UTC = 495;
const WET = 496;
/**
* list of time zones
*/
public static $constToFullName = array(
self::ASIA_YEKATERINBURG => 'Asia/Yekaterinburg',
self::ASIA_YEREVAN => 'Asia/Yerevan',
self::ATLANTIC_AZORES => 'Atlantic/Azores',
self::ATLANTIC_BERMUDA => 'Atlantic/Bermuda',
self::ATLANTIC_CANARY => 'Atlantic/Canary',
self::ATLANTIC_CAPE_VERDE => 'Atlantic/Cape_Verde',
self::ATLANTIC_FAEROE => 'Atlantic/Faeroe',
self::ATLANTIC_FAROE => 'Atlantic/Faroe',
self::ATLANTIC_JAN_MAYEN => 'Atlantic/Jan_Mayen',
self::ATLANTIC_MADEIRA => 'Atlantic/Madeira',
self::ATLANTIC_REYKJAVIK => 'Atlantic/Reykjavik',
self::ATLANTIC_SOUTH_GEORGIA => 'Atlantic/South_Georgia',
self::ATLANTIC_ST_HELENA => 'Atlantic/St_Helena',
self::ATLANTIC_STANLEY => 'Atlantic/Stanley',
self::AUSTRALIA_ACT => 'Australia/ACT',
self::AUSTRALIA_ADELAIDE => 'Australia/Adelaide',
self::AUSTRALIA_BRISBANE => 'Australia/Brisbane',
self::AUSTRALIA_BROKEN_HILL => 'Australia/Broken_Hill',
self::AUSTRALIA_CANBERRA => 'Australia/Canberra',
self::AUSTRALIA_CURRIE => 'Australia/Currie',
self::AUSTRALIA_DARWIN => 'Australia/Darwin',
self::AUSTRALIA_EUCLA => 'Australia/Eucla',
self::AUSTRALIA_HOBART => 'Australia/Hobart',
self::AUSTRALIA_LHI => 'Australia/LHI',
self::AUSTRALIA_LINDEMAN => 'Australia/Lindeman',
self::AUSTRALIA_LORD_HOWE => 'Australia/Lord_Howe',
self::AUSTRALIA_MELBOURNE => 'Australia/Melbourne',
self::AUSTRALIA_NSW => 'Australia/NSW',
self::AUSTRALIA_NORTH => 'Australia/North',
self::AUSTRALIA_PERTH => 'Australia/Perth',
self::AUSTRALIA_QUEENSLAND => 'Australia/Queensland',
self::AUSTRALIA_SOUTH => 'Australia/South',
self::AUSTRALIA_SYDNEY => 'Australia/Sydney',
self::AUSTRALIA_TASMANIA => 'Australia/Tasmania',
self::AUSTRALIA_VICTORIA => 'Australia/Victoria',
self::AUSTRALIA_WEST => 'Australia/West',
self::AUSTRALIA_YANCOWINNA => 'Australia/Yancowinna',
self::BRAZIL_ACRE => 'Brazil/Acre',
self::BRAZIL_DENORONHA => 'Brazil/DeNoronha',
self::BRAZIL_EAST => 'Brazil/East',
self::BRAZIL_WEST => 'Brazil/West',
self::CET => 'CET',
self::CANADA_ATLANTIC => 'Canada/Atlantic',
self::CANADA_CENTRAL => 'Canada/Central',
self::CANADA_EAST_SASKATCHEWAN => 'Canada/East-Saskatchewan',
self::CANADA_EASTERN => 'Canada/Eastern',
self::CANADA_MOUNTAIN => 'Canada/Mountain',
self::CANADA_NEWFOUNDLAND => 'Canada/Newfoundland',
self::CANADA_PACIFIC => 'Canada/Pacific',
self::CANADA_SASKATCHEWAN => 'Canada/Saskatchewan',
self::CANADA_YUKON => 'Canada/Yukon',
self::CHILE_CONTINENTAL => 'Chile/Continental',
self::CHILE_EASTERISLAND => 'Chile/EasterIsland',
self::EET => 'EET',
self::EST => 'EST',
self::ETC_GMT => 'Etc/GMT',
self::ETC_GREENWICH => 'Etc/Greenwich',
self::ETC_UCT => 'Etc/UCT',
self::ETC_UTC => 'Etc/UTC',
self::ETC_UNIVERSAL => 'Etc/Universal',
self::ETC_ZULU => 'Etc/Zulu',
self::EUROPE_AMSTERDAM => 'Europe/Amsterdam',
self::EUROPE_ANDORRA => 'Europe/Andorra',
self::EUROPE_ATHENS => 'Europe/Athens',
self::EUROPE_BELFAST => 'Europe/Belfast',
self::EUROPE_BELGRADE => 'Europe/Belgrade',
self::EUROPE_BERLIN => 'Europe/Berlin',
self::EUROPE_BRATISLAVA => 'Europe/Bratislava',
self::EUROPE_BRUSSELS => 'Europe/Brussels',
self::EUROPE_BUCHAREST => 'Europe/Bucharest',
self::EUROPE_BUDAPEST => 'Europe/Budapest',
self::EUROPE_CHISINAU => 'Europe/Chisinau',
self::EUROPE_COPENHAGEN => 'Europe/Copenhagen',
self::EUROPE_DUBLIN => 'Europe/Dublin',
self::EUROPE_GIBRALTAR => 'Europe/Gibraltar',
self::EUROPE_GUERNSEY => 'Europe/Guernsey',
self::EUROPE_HELSINKI => 'Europe/Helsinki',
self::EUROPE_ISLE_OF_MAN => 'Europe/Isle_of_Man',
self::EUROPE_ISTANBUL => 'Europe/Istanbul',
self::EUROPE_JERSEY => 'Europe/Jersey',
self::EUROPE_KALININGRAD => 'Europe/Kaliningrad',
self::EUROPE_KIEV => 'Europe/Kiev',
self::EUROPE_LISBON => 'Europe/Lisbon',
self::EUROPE_LJUBLJANA => 'Europe/Ljubljana',
self::EUROPE_LONDON => 'Europe/London',
self::EUROPE_LUXEMBOURG => 'Europe/Luxembourg',
self::EUROPE_MADRID => 'Europe/Madrid',
self::EUROPE_MALTA => 'Europe/Malta',
self::EUROPE_MARIEHAMN => 'Europe/Mariehamn',
self::EUROPE_MINSK => 'Europe/Minsk',
self::EUROPE_MONACO => 'Europe/Monaco',
self::EUROPE_MOSCOW => 'Europe/Moscow',
self::EUROPE_NICOSIA => 'Europe/Nicosia',
self::EUROPE_OSLO => 'Europe/Oslo',
self::EUROPE_PARIS => 'Europe/Paris',
self::EUROPE_PODGORICA => 'Europe/Podgorica',
self::EUROPE_PRAGUE => 'Europe/Prague',
self::EUROPE_RIGA => 'Europe/Riga',
self::EUROPE_ROME => 'Europe/Rome',
self::EUROPE_SAMARA => 'Europe/Samara',
self::EUROPE_SAN_MARINO => 'Europe/San_Marino',
self::EUROPE_SARAJEVO => 'Europe/Sarajevo',
self::EUROPE_SIMFEROPOL => 'Europe/Simferopol',
self::EUROPE_SKOPJE => 'Europe/Skopje',
self::EUROPE_SOFIA => 'Europe/Sofia',
self::EUROPE_STOCKHOLM => 'Europe/Stockholm',
self::EUROPE_TALLINN => 'Europe/Tallinn',
self::EUROPE_TIRANE => 'Europe/Tirane',
self::EUROPE_TIRASPOL => 'Europe/Tiraspol',
self::EUROPE_UZHGOROD => 'Europe/Uzhgorod',
self::EUROPE_VADUZ => 'Europe/Vaduz',
self::EUROPE_VATICAN => 'Europe/Vatican',
self::EUROPE_VIENNA => 'Europe/Vienna',
self::EUROPE_VILNIUS => 'Europe/Vilnius',
self::EUROPE_VOLGOGRAD => 'Europe/Volgograd',
self::EUROPE_WARSAW => 'Europe/Warsaw',
self::EUROPE_ZAGREB => 'Europe/Zagreb',
self::EUROPE_ZAPOROZHYE => 'Europe/Zaporozhye',
self::EUROPE_ZURICH => 'Europe/Zurich',
self::GB => 'GB',
self::GMT => 'GMT',
self::HST => 'HST',
self::INDIAN_ANTANANARIVO => 'Indian/Antananarivo',
self::INDIAN_CHAGOS => 'Indian/Chagos',
self::INDIAN_CHRISTMAS => 'Indian/Christmas',
self::INDIAN_COCOS => 'Indian/Cocos',
self::INDIAN_COMORO => 'Indian/Comoro',
self::INDIAN_KERGUELEN => 'Indian/Kerguelen',
self::INDIAN_MAHE => 'Indian/Mahe',
self::INDIAN_MALDIVES => 'Indian/Maldives',
self::INDIAN_MAURITIUS => 'Indian/Mauritius',
self::INDIAN_MAYOTTE => 'Indian/Mayotte',
self::INDIAN_REUNION => 'Indian/Reunion',
self::MET => 'MET',
self::MST => 'MST',
self::MEXICO_BAJANORTE => 'Mexico/BajaNorte',
self::MEXICO_BAJASUR => 'Mexico/BajaSur',
self::MEXICO_GENERAL => 'Mexico/General',
self::NZ => 'NZ',
self::PRC => 'PRC',
self::PACIFIC_APIA => 'Pacific/Apia',
self::PACIFIC_AUCKLAND => 'Pacific/Auckland',
self::PACIFIC_CHATHAM => 'Pacific/Chatham',
self::PACIFIC_CHUUK => 'Pacific/Chuuk',
self::PACIFIC_EASTER => 'Pacific/Easter',
self::PACIFIC_EFATE => 'Pacific/Efate',
self::PACIFIC_ENDERBURY => 'Pacific/Enderbury',
self::PACIFIC_FAKAOFO => 'Pacific/Fakaofo',
self::PACIFIC_FIJI => 'Pacific/Fiji',
self::PACIFIC_FUNAFUTI => 'Pacific/Funafuti',
self::PACIFIC_GALAPAGOS => 'Pacific/Galapagos',
self::PACIFIC_GAMBIER => 'Pacific/Gambier',
self::PACIFIC_GUADALCANAL => 'Pacific/Guadalcanal',
self::PACIFIC_GUAM => 'Pacific/Guam',
self::PACIFIC_HONOLULU => 'Pacific/Honolulu',
self::PACIFIC_JOHNSTON => 'Pacific/Johnston',
self::PACIFIC_KIRITIMATI => 'Pacific/Kiritimati',
self::PACIFIC_KOSRAE => 'Pacific/Kosrae',
self::PACIFIC_KWAJALEIN => 'Pacific/Kwajalein',
self::PACIFIC_MAJURO => 'Pacific/Majuro',
self::PACIFIC_MARQUESAS => 'Pacific/Marquesas',
self::PACIFIC_MIDWAY => 'Pacific/Midway',
self::PACIFIC_NAURU => 'Pacific/Nauru',
self::PACIFIC_NIUE => 'Pacific/Niue',
self::PACIFIC_NORFOLK => 'Pacific/Norfolk',
self::PACIFIC_NOUMEA => 'Pacific/Noumea',
self::PACIFIC_PAGO_PAGO => 'Pacific/Pago_Pago',
self::PACIFIC_PALAU => 'Pacific/Palau',
self::PACIFIC_PITCAIRN => 'Pacific/Pitcairn',
self::PACIFIC_POHNPEI => 'Pacific/Pohnpei',
self::PACIFIC_PONAPE => 'Pacific/Ponape',
self::PACIFIC_PORT_MORESBY => 'Pacific/Port_Moresby',
self::PACIFIC_RAROTONGA => 'Pacific/Rarotonga',
self::PACIFIC_SAIPAN => 'Pacific/Saipan',
self::PACIFIC_SAMOA => 'Pacific/Samoa',
self::PACIFIC_TAHITI => 'Pacific/Tahiti',
self::PACIFIC_TARAWA => 'Pacific/Tarawa',
self::PACIFIC_TONGATAPU => 'Pacific/Tongatapu',
self::PACIFIC_TRUK => 'Pacific/Truk',
self::PACIFIC_WAKE => 'Pacific/Wake',
self::PACIFIC_WALLIS => 'Pacific/Wallis',
self::PACIFIC_YAP => 'Pacific/Yap',
self::ROC => 'ROC',
self::ROK => 'ROK',
self::UCT => 'UCT',
self::UTC => 'UTC',
self::WET => 'WET',
);
/**
* list of time zones indexed by name
*/
public static $fullNameToConst = array(
'Asia/Yekaterinburg' => self::ASIA_YEKATERINBURG,
'Asia/Yerevan' => self::ASIA_YEREVAN,
'Atlantic/Azores' => self::ATLANTIC_AZORES,
'Atlantic/Bermuda' => self::ATLANTIC_BERMUDA,
'Atlantic/Canary' => self::ATLANTIC_CANARY,
'Atlantic/Cape_Verde' => self::ATLANTIC_CAPE_VERDE,
'Atlantic/Faeroe' => self::ATLANTIC_FAEROE,
'Atlantic/Faroe' => self::ATLANTIC_FAROE,
'Atlantic/Jan_Mayen' => self::ATLANTIC_JAN_MAYEN,
'Atlantic/Madeira' => self::ATLANTIC_MADEIRA,
'Atlantic/Reykjavik' => self::ATLANTIC_REYKJAVIK,
'Atlantic/South_Georgia' => self::ATLANTIC_SOUTH_GEORGIA,
'Atlantic/St_Helena' => self::ATLANTIC_ST_HELENA,
'Atlantic/Stanley' => self::ATLANTIC_STANLEY,
'Australia/ACT' => self::AUSTRALIA_ACT,
'Australia/Adelaide' => self::AUSTRALIA_ADELAIDE,
'Australia/Brisbane' => self::AUSTRALIA_BRISBANE,
'Australia/Broken_Hill' => self::AUSTRALIA_BROKEN_HILL,
'Australia/Canberra' => self::AUSTRALIA_CANBERRA,
'Australia/Currie' => self::AUSTRALIA_CURRIE,
'Australia/Darwin' => self::AUSTRALIA_DARWIN,
'Australia/Eucla' => self::AUSTRALIA_EUCLA,
'Australia/Hobart' => self::AUSTRALIA_HOBART,
'Australia/LHI' => self::AUSTRALIA_LHI,
'Australia/Lindeman' => self::AUSTRALIA_LINDEMAN,
'Australia/Lord_Howe' => self::AUSTRALIA_LORD_HOWE,
'Australia/Melbourne' => self::AUSTRALIA_MELBOURNE,
'Australia/NSW' => self::AUSTRALIA_NSW,
'Australia/North' => self::AUSTRALIA_NORTH,
'Australia/Perth' => self::AUSTRALIA_PERTH,
'Australia/Queensland' => self::AUSTRALIA_QUEENSLAND,
'Australia/South' => self::AUSTRALIA_SOUTH,
'Australia/Sydney' => self::AUSTRALIA_SYDNEY,
'Australia/Tasmania' => self::AUSTRALIA_TASMANIA,
'Australia/Victoria' => self::AUSTRALIA_VICTORIA,
'Australia/West' => self::AUSTRALIA_WEST,
'Australia/Yancowinna' => self::AUSTRALIA_YANCOWINNA,
'Brazil/Acre' => self::BRAZIL_ACRE,
'Brazil/DeNoronha' => self::BRAZIL_DENORONHA,
'Brazil/East' => self::BRAZIL_EAST,
'Brazil/West' => self::BRAZIL_WEST,
'CET' => self::CET,
'Canada/Atlantic' => self::CANADA_ATLANTIC,
'Canada/Central' => self::CANADA_CENTRAL,
'Canada/East-Saskatchewan' => self::CANADA_EAST_SASKATCHEWAN,
'Canada/Eastern' => self::CANADA_EASTERN,
'Canada/Mountain' => self::CANADA_MOUNTAIN,
'Canada/Newfoundland' => self::CANADA_NEWFOUNDLAND,
'Canada/Pacific' => self::CANADA_PACIFIC,
'Canada/Saskatchewan' => self::CANADA_SASKATCHEWAN,
'Canada/Yukon' => self::CANADA_YUKON,
'Chile/Continental' => self::CHILE_CONTINENTAL,
'Chile/EasterIsland' => self::CHILE_EASTERISLAND,
'EET' => self::EET,
'EST' => self::EST,
'Etc/GMT' => self::ETC_GMT,
'Etc/Greenwich' => self::ETC_GREENWICH,
'Etc/UCT' => self::ETC_UCT,
'Etc/UTC' => self::ETC_UTC,
'Etc/Universal' => self::ETC_UNIVERSAL,
'Etc/Zulu' => self::ETC_ZULU,
'Europe/Kaliningrad' => self::EUROPE_KALININGRAD,
'Europe/Moscow' => self::EUROPE_MOSCOW,
'Europe/Samara' => self::EUROPE_SAMARA,
'ROC' => self::ROC,
'ROK' => self::ROK,
'UCT' => self::UCT,
'UTC' => self::UTC,
'WET' => self::WET,
);
/**
* Get time zone string based on constant value
*
* @param int $const
*
* @return string|null
*/
public static function get($const)
{
if (isset(static::$constToFullName[$const])) {
return static::$constToFullName[$const];
} else {
return null;
}
}
/**
* Get time zone constant value from passed time zone string
*
* @param int $code
*
* @return int|null
*/
public static function findByFullName($code)
{
if (isset(static::$fullNameToConst[$code])) {
return static::$fullNameToConst[$code];
} else {
return null;
}
}
/**
* Check if constant exists
*
* @param int $const
*
* @return bool
*/
public static function isConst($const)
{
return isset(static::$constToFullName[$const]);
}
/**
* Get time zone constant value from passed time zone string
*
* @param string $timeZoneString
*
* @return bool
*/
public static function isTimeZone($timeZoneString)
{
return isset(static::$fullNameToConst[$timeZoneString]);
}
}
const TIME_ZONE_FORMAT_NAME = 'utc';
$TIME_ZONE_FORMAT_NAME = 'utc';
$KEY_VALUE = 'value';
$KEY_NAME = 'name';
$KEY_OFFSET = 'offset';
$KEY_FORMAT = 'format';
$KEY_DISPLAY = 'display';
function convertTimezoneToArray($timezone, $value)
{
$dateTime = new \DateTime();
$dateTime->setTimeZone(new \DateTimeZone($timezone));
return [
$KEY_VALUE => $value,
$KEY_NAME => $timezone,
$KEY_OFFSET => $dateTime->format('P'),
$KEY_FORMAT => $TIME_ZONE_FORMAT_NAME
];
}
function convertTimezoneList(array $timezonesForCountry)
{
$timezoneArray = [];
foreach ($timezonesForCountry as $timeZone) {
if (TimeZone::isTimeZone($timeZone)) {
$value = TimeZone::findByFullName($timeZone);
$timezoneArray[] = convertTimezoneToArray($timeZone, $value);
}
}
return $timezoneArray;
}
$inputArray = ["Asia/Yekaterinburg", "Europe/Kaliningrad", "Europe/Moscow", "Europe/Samara"];
convertTimezoneList($inputArray);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.3.0 - 8.3.6 Fatal error: Uncaught Error: Undefined constant self::ASIA_YEREVAN in /in/BWSXi:29
Stack trace:
#0 /in/BWSXi(354): [constant expression]()
#1 /in/BWSXi(382): TimeZone::isTimeZone('Asia/Yekaterinb...')
#2 /in/BWSXi(393): convertTimezoneList(Array)
#3 {main}
thrown in /in/BWSXi on line 29
Process exited with code 255 . Output for 8.2.0 - 8.2.18 Fatal error: Uncaught Error: Undefined constant self::ASIA_YEREVAN in /in/BWSXi:29
Stack trace:
#0 /in/BWSXi(382): TimeZone::isTimeZone('Asia/Yekaterinb...')
#1 /in/BWSXi(393): convertTimezoneList(Array)
#2 {main}
thrown in /in/BWSXi on line 29
Process exited with code 255 . Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 Fatal error: Uncaught Error: Undefined constant self::ASIA_YEREVAN in /in/BWSXi:354
Stack trace:
#0 /in/BWSXi(382): TimeZone::isTimeZone('Asia/Yekaterinb...')
#1 /in/BWSXi(393): convertTimezoneList(Array)
#2 {main}
thrown in /in/BWSXi on line 354
Process exited with code 255 . Output for 7.0.0 - 7.0.20 , 7.1.0 - 7.1.20 , 7.2.6 - 7.2.33 , 7.3.16 - 7.3.33 , 7.4.0 - 7.4.33 Fatal error: Uncaught Error: Undefined class constant 'self::ASIA_YEREVAN' in /in/BWSXi:354
Stack trace:
#0 /in/BWSXi(382): TimeZone::isTimeZone('Asia/Yekaterinb...')
#1 /in/BWSXi(393): convertTimezoneList(Array)
#2 {main}
thrown in /in/BWSXi on line 354
Process exited with code 255 . Output for 5.5.24 - 5.5.35 , 5.6.8 - 5.6.28 Fatal error: Undefined class constant 'self::ASIA_YEREVAN' in /in/BWSXi on line 354
Process exited with code 255 . preferences:dark mode live preview
161.23 ms | 402 KiB | 181 Q