Перейти к содержимому


Как определить часовой пояс?


Сообщений в теме: 2

#1 serg499

    Активный участник

  • Пользователи
  • PipPipPip
  • 109 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 20 Март 2015 - 15:09

Здравствуйте! Может, кто сталкивался - есть поле Город (с городами РФ), можно ли как-то вычислением или через запрос к внешней базе определить часовой пояс в нем (в идеале, сразу текущее время в городе)?

#2 serg499

    Активный участник

  • Пользователи
  • PipPipPip
  • 109 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 24 Март 2015 - 14:41

Неужели никто не сталкивался? Очень нужно... Может, какие-то другие способы? Большая база, трудно определить, в каком нас. пункте какое время. Вручную много времени теряется.

#3 Whitescorpion

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений

Отправлено 09 Август 2017 - 22:33

Вот то, что делал для себя. Возможно криво, но зато работает. Может кому-то пригодится.
Вычисление вешается на поле "Время в регионе"
$line['Время в регионе'] = date("d.m.Y H:i:s");
if ($line['Регион'] == 'Калининградская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])-3600);
} elseif ($line['Регион'] == 'Астраханская область' || $line['Регион'] == 'Самарская область' || $line['Регион'] == 'Удмуртия' || $line['Регион'] == 'Ульяновская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+3600);
} elseif ($line['Регион'] == 'Курганская область' || $line['Регион'] == 'Оренбургская область' || $line['Регион'] == 'Пермский край' || $line['Регион'] == 'Башкортостан' || $line['Регион'] == 'Свердловская область' || $line['Регион'] == 'Тюменская область' || $line['Регион'] == 'Ханты-Мансийский АО – Югра' || $line['Регион'] == 'Челябинская область' || $line['Регион'] == 'Ямало-Ненецкий АО'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+2*3600);
} elseif ($line['Регион'] == 'Омская область' || $line['Регион'] == 'Новосибирская область' || $line['Регион'] == 'Томская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+3*3600);
} elseif ($line['Регион'] == 'Алтайский край' || $line['Регион'] == 'Красноярский край' || $line['Регион'] == 'Кемеровская область' || $line['Регион'] == 'Алтай' || $line['Регион'] == 'Тыва' || $line['Регион'] == 'Хакасия'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+4*3600);
} elseif ($line['Регион'] == 'Бурятия' || $line['Регион'] == 'Иркутская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+5*3600);
} elseif ($line['Регион'] == 'Амурская область' || $line['Регион'] == 'Забайкальский край'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+6*3600);
} elseif ($line['Регион'] == 'Еврейская АО' || $line['Регион'] == 'Приморский край' || $line['Регион'] == 'Хабаровский край' || $line['Регион'] == 'Магаданская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+7*3600);
} elseif ($line['Регион'] == 'Саха (Якутия)' || $line['Регион'] == 'Сахалинская область'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+8*3600);
} elseif ($line['Регион'] == 'Камчатский край' || $line['Регион'] == 'Чукотский АО'){
$line['Время в регионе'] = date("d.m.Y H:i:s", strtotime($line['Время в регионе'])+9*3600);
}

В таблице нужно создать поле "Регион" со списком регионов РФ:
Адыгея
Алтай
Алтайский край
Амурская область
Архангельская область
Астраханская область
Башкортостан
Белгородская область
Брянская область
Бурятия
Владимирская область
Волгоградская область
Вологодская область
Воронежская область
Дагестан
Еврейская АО
Забайкальский край
Ивановская область
Ингушетия
Иркутская область
Кабардино-Балкария
Калининградская область
Калмыкия
Калужская область
Камчатский край
Карачаево-Черкесия
Карелия
Кемеровская область
Кировская область
Коми
Костромская область
Краснодарский край
Красноярский край
Крым
Курганская область
Курская область
Ленинградская область
Липецкая область
Магаданская область
Марий Эл
Мордовия
Москва
Московская область
Мурманская область
Ненецкий АО
Нижегородская область
Новгородская область
Новосибирская область
Омская область
Оренбургская область
Орловская область
Пензенская область
Пермский край
Приморский край
Псковская область
Ростовская область
Рязанская область
Самарская область
Санкт-Петербург
Саратовская область
Саха (Якутия)
Сахалинская область
Свердловская область
Севастополь
Северная Осетия - Алания
Смоленская область
Ставропольский край
Тамбовская область
Татарстан
Тверская область
Томская область
Тульская область
Тыва
Тюменская область
Удмуртия
Ульяновская область
Хабаровский край
Хакасия
Ханты-Мансийский АО – Югра
Челябинская область
Чечня
Чувашия
Чукотский АО
Ямало-Ненецкий АО
Ярославская область

Единственный косячек в том, что Якутия (Саха) находится сразу в 3-х часовых поясах. Но для меня это не очень важный момент, поэтому я просто установил ей максимально большую разницу с Москвой.
Возвращаясь к вопросу, заданному в теме:
Думаю можно доработать, привязав города к регионам.
Также, если нужно делать коррекцию времени не по Москве, а по другим регионам, нужно в ручную менять разницу в вычислении. Либо дорабатывать код, Мне, возможно, это понадобится в скором времени, поэтому, если сделаю - выложу в этой теме.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных