Timezone php europe moscow

Как управлять часовыми поясами в PHP

Изучите основы использования часовых поясов в PHP и как сделать лучший выбор из набора функций предлагаемых PHP.

В этой краткой статье мы объясним основы использования часовых поясов в PHP. Работы с часовыми поясами — важный навык для каждого программиста, работающего с веб-приложениями. Поскольку на протяжении многих лет PHP в основном использовался для веб-приложений, он имеет довольно простую, но всестороннюю поддержку часовых поясов.

Часовые пояса и PHP

Часовые пояса поддерживаются в PHP с версии 4. Но то, что начиналось как базовая реализация функции date_default_timezone_set() , быстро развилось в PHP 5 и 7 с введением классов DateTimeZone и DateTimeZoneImmutable .

DateTimeZoneImmutable — подкласс DateTimeZone позволяющий создавать часовые пояса, невосприимчивые к изменениям. Эта функция может быть очень полезна в ситуациях, когда нужно быть уверенным, что часовой пояс никогда не изменится.

Функция date_default_timezone_set() устанавливает часовой пояс по умолчанию, используемый всеми функциями времени/даты в данном скрипте. Эта функция позволяет настроить часовой пояс, но имеет очень небольшую степень детализации, что вынуждает использовать один и тот же часовой пояс в течении выполнения скрипта.

Классы DateTimeZone и DateTimeZoneImmutable привнесли больше контроля и гибкости в работу с часовыми поясами. Теперь мы можем получить доступ ко всем видам информации о часовом поясе, а также к нескольким экземплярам разных часовых поясов в одном скрипте.

Использование в PHP часовых поясов

Использование date_default_timezone_set()

 
date_default_timezone_set('Europe/Moscow');

Часовые пояса в методе date_default_timezone_set() всегда определяются в форматах Континент/город или Континент/Страна/Город . Полный список часовых поясов поддерживаемых в PHP, вы можете найти по ссылке

Это установит часовой пояс в часовой пояс переданный в качестве аргумента. После того как мы установили часовой пояс, можно использовать такие функции, как date_default_timezone_get() или любые другие функции, связанные со временем, такие как date() , для доступа к информации о новом часовом поясе.

Использование класса DateTimeZone

Лучшим способом использования часовых поясов в PHP является использование класса DateTimeZone . Это означает, что у нас есть доступ к большему количеству функций для доступа к информации и управления часовыми поясами, и мы можем создавать несколько экземпляров класса, что позволяет работать с несколькими часовыми поясами:

 
$timezone = new DateTimeZone('Asia/Novosibirsk');
$datetime = new DateTime($date, $timezone);
echo $datetime->format('Y-m-d H:i:s');

В этом примере мы создаём новый объект DateTimeZone и передаём его новому экземпляру DateTime . Затем объект DateTime будет использовать информацию из объекта DateTimeZone . Наконец, мы используем функцию format() для вывода даты в предпочтительном формате.

Заключение

Как вы видели, работать с часовыми поясами в PHP довольно просто. Убедитесь, что выбрали лучший способ для своего варианта использования, и PHP вам поможет!

Источник

Установка временнОй зоны в PHP

Иногда возникает такая ситуация, что текущее время на сервере не соответствует вашему текущему часовому поясу или часовому поясу региона, на который ориентирован ваш сайт.

Чтобы было понятно, напомню: территориально Россия очень большая, и далеко не всем нужно, чтобы их сайты «жили» по московскому времени. Например, Урал, Сибирь, Дальний восток и т.д.

Серверы большинства популярных российских хостинг-провайдеров размещены на технологических площадках Москвы и Санкт-Петербурга и по-умолочанию настроены, естественно, на московскую временну́ю зону. Сервер не может автоматически подстраиваться под ваше текущее местоположение и переводить системные часы. В связи с чем, работа функций даты и времени на сайте может быть не совсем корректной. Естественно, сейчас речь не идёт о CMS, в которых поправка часового пояса обычно присутствует прямо в интерфейсе администратора.

В первую очередь проверьте текущее состояние с помощью PHP-кода:

Хорошо, если у вас свой сервер и имеется доступ к php.ini, где можно задать нужную временну́ю зону и забыть. Например, таким образом:

date.timezone = Europe/Moscow

Правда, если на сервере размещены несколько проектов, в которых должны поддерживаться различные часовые пояса, тогда лучше этого не делать. В этом случае будет правильнее задать временные зоны только для проектов, где один часовой пояс.

Установка временной зоны на виртуальном хостинге

На виртуальном хостинге, доступа к конфигам сервера чаще всего нет. Поэтому, в первую очередь попробуйте задать временну́ю зону с помощью .htaccess. Просто найдите или создайте в корне своего сайта файл .htaccess и добавьте в него такую строку:

php_value date.timezone "Europe/Moscow"

Если способ не сработает, тогда воспользуемся функцией date_default_timezone_set(), которая устанавливает временную зону по умолчанию для всех функций даты и времени. Для этого нужно где-нибудь в начале скрипта просто добавьте такую строку:

date_default_timezone_set('Europe/Moscow');

Естественно, Europe/Moscow меняется на необходимый вам часовой пояс. Для территории РФ в PHP поддерживаются следующие временные зоны:

  • Europe/Moscow
  • Europe/Samara
  • Europe/Kaliningrad
  • Europe/Volgograd
  • Asia/Anadyr
  • Asia/Kamchatka
  • Asia/Krasnoyarsk
  • Asia/Magadan
  • Asia/Novokuznetsk
  • Asia/Novosibirsk
  • Asia/Omsk
  • Asia/Sakhalin
  • Asia/Vladivostok
  • Asia/Yakutsk
  • Asia/Yekaterinburg

Со списком всех доступных временных зон можно ознакомиться по ссылке или выполнить команду, которая возвратит вам список временных зон, доступных на вашем сервере.

print_r(DateTimeZone::listIdentifiers());

⚡️ Подписывайся на мой канал @DanilinBiz и ты узнаешь, как зарабатывать достойные деньги на фрилансе.

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Источник

Временные зоны и часовые пояса в PHP

Со временем каждый проект расширяется, одного региона становится мало. Часто посетителю нужно показать время его часового пояса.

date_default_timezone_set — устанавливаем временную зону по умолчанию для всех функций даты/времени в скрипте

ini_set - установка значения для конкретной конфигурации.

date_default_timezone_set('Europe/Moscow'); // часовой пояс по Москве 

// или второй вариант

ini_set('date.timezone', 'America/Los_Angeles'); // по Лос-Анжелесу
Для того, чтобы пользователь на сайте видел время своего часового пояса, можно использовать средства PHP. Пользователю предоставляем выбор (select) его часового пояса, заносим результат в переменную и БД, а переменную в аргумент встроенной функции date_default_timezone_set.
В результате время его сообщений, объявлений, заказов будет отображаться согласно его временной зоне. Можно, конечно, обойтись и средствами JavaScript на клиенте, но будет проблема с теми, у кого работа js блокируется Браузером.

Примеры часовых поясов для PHP

Часть временных зон подписал, чтобы сразу можно было найти нужную. В скрипт вставлять соответственно Часть света/Город, например, Europe/Minsk.

Europe/Amsterdam (Амстердам, Нидерланды)
Europe/Andorra
Europe/Athens (Афины, Греция)
Europe/Belfast (Белфаст, Северная Ирландия)
Europe/Belgrade (Белград, Сербия)
Europe/Berlin (Берлин, Германия)
Europe/Bratislava (Братислава, Словакия)
Europe/Brussels (Брюссель, Бельгия)
Europe/Bucharest (Бухарест, Румыния)
Europe/Budapest (Будапешт, Венгрия)
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 (Цюрих, Швейцария)

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 (Ереван, Армения)

Источник

Читайте также:  Php mysqli class library
Оцените статью