Различные часовые пояса PHP на одной странице

Содержание
Введение
Показать московское время
Разные пояса одновременно: Пример кода без ООП
Результат
Комментарии к коду
DateTimeImmutable: пример с ООП
UTC
Как обновить время
Список часовых поясов PHP
Африка
Америка
Азия
Австралия
Европа
Океания
Похожие статьи

Введение

Часто возникает необходимость отобразить время разных часовых поясов на одной странице.

Например, на сайте HeiHei.ru это сделано для того, чтобы те, кто едет в Финляндию видели одновременно и финское и московское время.

Отвечает за это команда

$default_timezone =
date_default_timezone_get();

В этой статье Вы узнаете о том как показать время сразу нескольких зон одновременно на одной странице.

Более простые примеры вы можете изучить в статье

«Дата и время в PHP»

Показать московское время

Начнём с простого примера - показать только московское время.

Здесь может быть два варианта - либо у вас на сервере время по умолчанию уже московское, либо нет.

Если у вас время по умолчанию московское просто выведите его

echo(date("H:i:s"));

11:36:34

Если время не московское, то его нужно сделать московским

За смену часового пояса отвечает функция date_default_timezone_set()

date_default_timezone_set(
'Europe/Moscow');
echo(date("H:i:s"));

Пример кода на PHP

Теперь разберём случай когда нужно показать время сразу нескольких поясов на одной странице.

Проще сделать это сразу с помощью объекта DateTimeImmutable поэтому если не хотите разбираться с "функциональным" способом - переходите сразу сюда

$default_timezone = date_default_timezone_get(); echo($default_timezone); echo'<br><br><br>'; $moscow_time = date("H:i:s"); echo'Московское время '; echo($moscow_time); echo'<br><br><br>'; date_default_timezone_set('Europe/Helsinki'); echo'<br><br><br>'; $helsinki_time = date("H:i:s"); echo'Время в Хельсинки '; echo($helsinki_time); echo'<br><br><br>'; date_default_timezone_set('Europe/Stockholm'); echo'<br><br><br>'; $stockholm_time = date("H:i:s"); echo'Время в Стокгольме '; echo($stockholm_time); echo'<br><br><br>'; date_default_timezone_set('Europe/Moscow'); echo'<br><br><br>';

Результат

Europe/Moscow


Московское время 11:36:34





Время в Хельсинки 10:36:34





Время в Стокгольме 09:36:34


Комментарии к коду

$default_timezone = date_default_timezone_get();

Получаем зону, которая стоит по умолчанию на сервере.

echo($default_timezone);

Выводим её. И думаем, нужна нам эта зона или нет.

Так как в любом случае хочу показать московское время - буду использовать зону по умолчанию.

В следующей строке переменной moscow_time присвоено значение сервеного времени.

$moscow_time = date("H:i:s"); echo'Московское время '; echo($moscow_time);

Отобразили московское время.

Теперь нужно изменить временную зону

date_default_timezone_set('Europe/Helsinki');

Присвоить переменной helsinki_time значение

$helsinki_time = date("H:i:s");

Отобразить

echo'Время в Хельсинки '; echo($helsinki_time);

И так далее.

В конце, на всякий случай сделаем время по умолчанию снова московским.

date_default_timezone_set('Europe/Moscow');

DateTimeImmutable: пример с ООП

Если вы немного знакомы с ООП, проще будет создать три объекта DateTimeImmutable и использовать их.

Покажем время в Армении , Норвегии и Испании

$armenia_time = new DateTimeImmutable('now', new DateTimeZone('Asia/Erevan')); $norway_time = new DateTimeImmutable('now', new DateTimeZone('Europe/Oslo')); $spain_time = new DateTimeImmutable('now', new DateTimeZone('Europe/Madrid')); echo'<br>В Армении: '; echo $armenia_time->format('H:i:s'); echo'<br>В Норвегии: '; echo $norway_time->format('H:i:s'); echo'<br>В Испании: '; echo $spain_time->format('H:i:s');


В Армении: 12:36:34
В Норвегии: 09:36:34
В Испании: 09:36:34

UTC

$utc = new DateTimeImmutable('now', new DateTimeZone('UTC')); echo 'UTC: ' echo $utc->format('H:i:s');

UTC
08:36:34

Как обновить время

PHP отдает время при загрузке и не может его менять на отданной странице.

Если Вам не обязательно обновлять время автоматически - можете просто добавить кнопку

Код

<input type="button" value="Обновить страницу 1" onClick="location.href=location.href">

<input type="button" value="Обновить страницу 2" onClick="window.location.href=window.location.href">

Результат

Оба этих варианта могут испытывать (а могут и не испытывать) проблемы в случае когда Вы перешли внутри страницы по якорю.

В этом случае попробуйте

<button type="submit" onClick="refreshPage()"> Обновить страницу 3 </button>
<script>
function refreshPage(){
window.location.reload();
}
</script>

Время в разных поясаха в данный момент

Во Владивостоке 18:36:34
В Токио 17:36:34
В Новосибирске 15:36:34
В Петербурге 11:36:34
В Хельсинки  10:36:34
В Стокгольме 09:36:34
В Нью-Йорке 04:36:34
В Лос-Анджелесе 01:36:34

Список часовых поясов PHP

Указывать без пробелов между именами собственными и /

Africa / Abidjan Africa / Accra
Africa / Addis_Ababa Africa / Algiers
Africa / Asmara Africa / Asmera
Africa / Bamako Africa / Bangui
Africa / Banjul Africa / Bissau
Africa / Blantyre Africa / Brazzaville
Africa / Bujumbura Africa / Cairo
Africa / Casablanca Africa / Ceuta
Africa / Conakry Africa / Dakar
Africa / Dar_es_Salaam Africa / Djibouti
Africa / Douala Africa / El_Aaiun
Africa / Freetown Africa / Gaborone
Africa / Harare Africa / Johannesburg
Africa / Juba Africa / Kampala
Africa / Khartoum Africa / Kigali
Africa / Kinshasa Africa / Lagos
Africa / Libreville Africa / Lome
Africa / Luanda Africa / Lubumbashi
Africa / Lusaka Africa / Malabo
Africa / Maputo Africa / Maseru
Africa / Mbabane Africa / Mogadishu
Africa / Monrovia Africa / Nairobi
Africa / Ndjamena Africa / Niamey
Africa / Nouakchott Africa / Ouagadougou
Africa / Porto-Novo Africa / Sao_Tome
Africa / Timbuktu Africa / Tripoli
Africa / Tunis Africa / Windhoek

America

America / Adak America / Anchorage
America / Anguilla America / Antigua
America / Araguaina America / Argentina/Buenos_Aires
America / Argentina/Catamarca America / Argentina/ComodRivadavia
America / Argentina/Cordoba America / Argentina/Jujuy
America / Argentina/La_Rioja America / Argentina/Mendoza
America / Argentina/Rio_Gallegos America / Argentina/Salta
America / Argentina/San_Juan America / Argentina/San_Luis
America / Argentina/Tucuman America / Argentina/Ushuaia
America / Aruba America / Asuncion
America / Atikokan America / Atka
America / Bahia America / Bahia_Banderas
America / Barbados America / Belem
America / Belize America / Blanc-Sablon
America / Boa_Vista America / Bogota
America / Boise America / Buenos_Aires
America / Cambridge_Bay America / Campo_Grande
America / Cancun America / Caracas
America / Catamarca America / Cayenne
America / Cayman America / Chicago
America / Chihuahua America / Coral_Harbour
America / Cordoba America / Costa_Rica
America / Creston America / Cuiaba
America / Curacao America / Danmarkshavn
America / Dawson America / Dawson_Creek
America / Denver America / Detroit
America / Dominica America / Edmonton
America / Eirunepe America / El_Salvador
America / Ensenada America / Fort_Wayne
America / Fortaleza America / Glace_Bay
America / Godthab America / Goose_Bay
America / Grand_Turk America / Grenada
America / Guadeloupe America / Guatemala
America / Guayaquil America / Guyana
America / Halifax America / Havana
America / Hermosillo America / Indiana/Indianapolis
America / Indiana/Knox America / Indiana/Marengo
America / Indiana/Petersburg America / Indiana/Tell_City
America / Indiana/Vevay America / Indiana/Vincennes
America / Indiana/Winamac America / Indianapolis
America / Inuvik America / Iqaluit
America / Jamaica America / Jujuy
America / Juneau America / Kentucky/Louisville
America / Kentucky/Monticello America / Knox_IN
America / Kralendijk America / La_Paz
America / Lima America / Los_Angeles
America / Louisville America / Lower_Princes
America / Maceio America / Managua
America / Manaus America / Marigot
America / Martinique America / Matamoros
America / Mazatlan America / Mendoza
America / Menominee America / Merida
America / Metlakatla America / Mexico_City
America / Miquelon America / Moncton
America / Monterrey America / Montevideo
America / Montreal America / Montserrat
America / Nassau America / New_York
America / Nipigon America / Nome
America / Noronha America / North_Dakota /Beulah
America / North_Dakota /Center America / North_Dakota /New_Salem
America / Ojinaga America / Panama
America / Pangnirtung America / Paramaribo
America / Phoenix America / Port-au-Prince
America / Port_of_Spain America / Porto_Acre
America / Porto_Velho America / Puerto_Rico
America / Rainy_River America / Rankin_Inlet
America / Recife America / Regina
America / Resolute America / Rio_Branco
America / Rosario America / Santa_Isabel
America / Santarem America / Santiago
America / Santo_Domingo America / Sao_Paulo
America / Scoresbysund America / Shiprock
America / Sitka America / St_Barthelemy
America / St_Johns America / St_Kitts
America / St_Lucia America / St_Thomas
America / St_Vincent America / Swift_Current
America / Tegucigalpa America / Thule
America / Thunder_Bay America / Tijuana
America / Toronto America / Tortola
America / Vancouver America / Virgin
America / Whitehorse America / Winnipeg
America / Yakutat America / Yellowknife

Antarctica

Antarctica / Casey Antarctica / Davis
Antarctica / DumontDUrville Antarctica / Macquarie
Antactica / Mawson Antarctica / McMurdo
Antarctica / Palmer Antarctica / Rothera
Antarctica / South_Pole Antarctica / Syowa
Antarctica / Vostok  

Arctic

Arctic/Longyearbyen

Asia

Asia / Aden Asia / Almaty
Asia / Amman Asia / Anadyr
Asia / Aqtau Asia / Aqtobe
Asia / Ashgabat Asia / Ashkhabad
Asia / Baghdad Asia / Bahrain
Asia / Baku Asia / Bangkok
Asia / Beirut Asia / Bishkek
Asia / Brunei Asia / Calcutta
Asia / Choibalsan Asia / Chongqing
Asia / Chungking Asia / Colombo
Asia / Dacca Asia / Damascus
Asia / Dhaka Asia / Dili
Asia / Dubai Asia / Dushanbe
Asia / Gaza Asia / Harbin
Asia / Hebron Asia / Ho_Chi_Minh
Asia / Hong_Kong Asia / Hovd
Asia / Irkutsk Asia / Istanbul
Asia / Jakarta Asia / Jayapura
Asia / Jerusalem Asia / Kabul
Asia / Kamchatka Asia / Karachi
Asia / Kashgar Asia / Kathmandu
Asia / Katmandu Asia / Khandyga
Asia / Kolkata Asia / Krasnoyarsk
Asia / Kuala_Lumpur Asia / Kuching
Asia / Kuwait Asia / Macao
Asia / Macau Asia / Magadan
Asia / Makassar Asia / Manila
Asia / Muscat Asia / Nicosia
Asia / Novokuznetsk Asia / Novosibirsk
Asia / Omsk Asia / Oral
Asia / Phnom_Penh Asia / Pontianak
Asia / Pyongyang Asia / Qatar
Asia / Qyzylorda Asia / Rangoon
Asia / Riyadh Asia / Saigon
Asia / Sakhalin Asia / Samarkand
Asia / Seoul Asia / Shanghai
Asia / Singapore Asia / Taipei
Asia / Tashkent Asia / Tbilisi
Asia / Tehran Asia / Tel_Aviv
Asia / Thimbu Asia / Thimphu
Asia / Tokyo Asia / Ujung_Pandang
Asia / Ulaanbaatar Asia / Ulan_Bator
Asia / Urumqi Asia / Ust-Nera
Asia / Vientiane Asia / Vladivostok
Asia / Yakutsk Asia / Yekaterinburg
Asia / Yerevan  

Atlantic

Atlantic / Azores Atlantic / Bermuda
Atlantic / Canary Atlantic / Cape_Verde
Atlantic / Kaeroe Atlantic / Karoe
Atlantic / Kan_Mayen Atlantic / Madeira
Atlantic / Reykjavik Atlantic / South_Georgia
Atlantic / St_Helena Atlantic / Stanley

Australia

Australia / ACT Australia / Adelaide Australia / Brisbane Australia / Broken_Hill Australia / Canberra
Australia / Currie Australia / Darwin Australia / Eucla Australia / Hobart Australia / LHI
Australia / Lindeman Australia / Lord_Howe Australia / Melbourne Australia / North Australia / NSW
Australia / Perth Australia / Queensland Australia / South Australia / Sydney Australia / Tasmania
Australia / Victoria Australia / West Australia / Yancowinna    

Europe

Europe / Amsterdam Europe / Andorra Europe / Athens Europe / Belfast Europe / Belgrade
Europe / Berlin Europe / Bratislava Europe / Brussels Europe / Bucharest Europe / Budapest
Europe / Busingen Europe / Chisinau Europe / Copenhagen Europe / Dublin Europe / Gibraltar
Europe / Guernsey Europe / Helsinki Europe / Isle_of_Man Europe / Istanbul Europe / Jersey
Europe / Kaliningrad Europe / Kiev Europe / Lisbon Europe / Ljubljana Europe / London
Europe / Luxembourg Europe / Madrid Europe / Malta Europe / Mariehamn Europe / Minsk
Europe / Monaco Europe / Moscow Europe / Nicosia Europe / Oslo Europe / Paris
Europe / Podgorica Europe / Prague Europe / Riga Europe / Rome Europe / Samara
Europe / San_Marino Europe / Sarajevo Europe / Simferopol Europe / Skopje Europe / Sofia
Europe / Stockholm Europe / Tallinn Europe / Tirane Europe / Tiraspol Europe / Uzhgorod
Europe / Vaduz Europe / Vatican Europe / Vienna Europe / Vilnius Europe / Volgograd
Europe / Warsaw Europe / Zagreb Europe / Zaporozhye Europe / Zurich  

Indian

Indian / Antananarivo Indian / Chagos Indian / Christmas Indian / Cocos Indian / Comoro
Indian / Kerguelen Indian / Mahe Indian / Maldives Indian / Mauritius Indian / Mayotte
Indian / Reunion        

Pacific

Pacific / Apia Pacific / Auckland Pacific / Chatham Pacific / Chuuk Pacific / Kaster
Pacific / Kfate Pacific / Knderbury Pacific / Kakaofo Pacific / Kiji Pacific / Kunafuti
Pacific / Galapagos Pacific / Gambier Pacific / Guadalcanal Pacific / Guam Pacific / Honolulu
Pacific / Kohnston Pacific / Kiritimati Pacific / Kosrae Pacific / Kwajalein Pacific / Majuro
Pacific / Marquesas Pacific / Midway Pacific / Nauru Pacific / Niue Pacific / Norfolk
Pacific / Noumea Pacific / Pago_Pago Pacific / Palau Pacific / Pitcairn Pacific / Pohnpei
Pacific / Ponape Pacific / Port_Moresby Pacific / Rarotonga Pacific / Saipan Pacific / Samoa
Pacific / Tahiti Pacific / Tarawa Pacific / Tongatapu Pacific / Truk Pacific / Wake
Pacific / Wallis Pacific / Yap      
Похожие статьи
Программирование на PHP
Массивы в PHP
Циклы в PHP
Дата и время в PHP - основы
Как отобразить время различных часовых поясов PHP
Как вставить переменную в ссылку PHP
gettype(): определить тип переменной PHP
json_decode
Как получить ширину экрана с помощью PHP
Вызов функции из другого файла
Premature end of chunk coded message body: closing chunk expected
Сгенерировать неповторяющиеся случайные числа PHP
Узнать свой HTTP_USER_AGENT
Сравнить две даты
Классы в PHP 8
Комментарии в PHP
substr: обрезать строку
Запросы к REST API на PHP
$_SERVER['REQUEST_URI']: текущая url
Работа с базами данных
Работа с cookies
PHP sessions
Аутентификация и авторизация в PHP 8
Тернарный оператор
try catch
PHP_errors.log Beget
Разбор ошибок
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Хотите поддержать сайт материально
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......