3v4l.org

run code in 300+ PHP versions simultaneously
<?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);
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:
161.23 ms | 402 KiB | 181 Q