Обновление часовых поясов - Дизайн и модификация Invision Power Board

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

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Обновление часовых поясов с 26 октября 2014

#1 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 15 Октябрь 2014 - 17:28

С 26 октября в России снова изменяется система исчисления времени и вводится новая шкала часовых зон (подробности - http://www.rg.ru/201...remiya-dok.html). Московское время с этого момента соответствует часовому поясу UTC+3, вместо UTC+4, действовавшего с 2011 года. Сезонный перевод часов осуществляться по-прежнему не будет. Соответственно меняются часовые зоны и других субъектов Федерации. То есть в ночь на 26 октября в большинстве регионов часы будут переведены на один час назад. Исключение составляют Удмуртия, Кемеровская, Самарская области, Камчатский край, Чукотский автономный округ, где часы не переводятся, а также Магаданская область и Забайкальский край, где часы переводятся на два часа назад.

Я подготовил для себя соответствующий патч и решил выложить на случай, если кому-то он пригодится. Он нужен обладателям версии 3.4 и тем обладателям более ранних версий, кто менял часовые зоны, исходя из системы 2011 года, а не просто "подкручивал" системное время, либо оставлял все как есть.

Для того, чтобы исправить часовые пояса, достаточно внести изменения в языковые файлы.

Для русского языка:

в наборах слов core/public_usercp и core/admin_global:


'time_2' =>        "(GMT + 2:00) Киев, Калининград, Хельсинки, Таллинн, Варшава, Иерусалим",
'time_3' =>        "(GMT + 3:00) Волгоград, Москва, Санкт-Петербург, Минск",
'time_4' =>        "(GMT + 4:00) Баку, Тбилиси, Ереван, Ижевск, Самара",
'time_5' =>        "(GMT + 5:00) Екатеринбург, Уфа, Тюмень, Исламабад, Карачи, Ташкент",
'time_6' =>        "(GMT + 6:00) Астана, Новосибирск, Омск, Барнаул, Дакка",
'time_7' =>        "(GMT + 7:00) Красноярск, Кемерово, Бангкок, Ханой, Джакарта",
'time_8' =>        "(GMT + 8:00) Пекин, Гонконг, Сингапур, Тайбей, Иркутск, Улан-Удэ, Чита",
'time_9' =>        "(GMT + 9:00) Осака, Саппоро, Сеул, Токио, Якутск ",
'time_10' =>   	"(GMT + 10:00) Мельбурн, Сидней, Владивосток, Хабаровск, Магадан, Южно-Сахалинск",
'time_11' =>   	"(GMT + 11:00) Новая Каледония, Соломоновы о-ва, Чокурдах",
'time_12' =>   	"(GMT + 12:00) Петропавловск-Камчатский, Анадырь, Окленд, Фиджи, Веллингтон",



Для английского языка:

в наборах слов core/public_usercp и core/admin_global:

'time_2' =>        "(GMT + 2:00 hours) Cairo, Helsinki, Tallinn, Warshaw, Kaliningrad",
'time_3' =>        "(GMT + 3:00 hours) Baghdad, Riyadh, Moscow, Nairobi",
'time_4' =>        "(GMT + 4:00 hours) Abu Dhabi, Baku, Muscat, Tbilisi",
'time_5' =>        "(GMT + 5:00 hours) Karachi, Tashkent, Ekaterinburg",
'time_6' =>        "(GMT + 6:00 hours) Astana, Novosibirsk, Bangladesh, Dhakra",
'time_7' =>        "(GMT + 7:00 hours) Bangkok, Hanoi, Jakarta, Krasnoyarsk",
'time_8' =>        "(GMT + 8:00 hours) Hong Kong, Perth, Singapore, Taipei, Irkutsk",
'time_9' =>        "(GMT + 9:00 hours) Osaka, Sapporo, Seoul, Tokyo, Yakutsk",
'time_10' =>   	"(GMT + 10:00 hours) Melbourne, Papua New Guinea, Sydney, Vladivostok",


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

UPDATE members SET time_offset=10 WHERE time_offset=12 AND members_auto_dst=0;
UPDATE members SET time_offset=10 WHERE time_offset=11 AND members_auto_dst=0;
UPDATE members SET time_offset=9  WHERE time_offset=10 AND members_auto_dst=0;
UPDATE members SET time_offset=8  WHERE time_offset=9  AND members_auto_dst=0;
UPDATE members SET time_offset=7  WHERE time_offset=8  AND members_auto_dst=0;
UPDATE members SET time_offset=6  WHERE time_offset=7  AND members_auto_dst=0;
UPDATE members SET time_offset=5  WHERE time_offset=6  AND members_auto_dst=0;
UPDATE members SET time_offset=3  WHERE time_offset=4  AND members_auto_dst=0;
UPDATE members SET time_offset=2  WHERE time_offset=3  AND members_auto_dst=0;


В данном примере таблица называется "members", возможно у вас установлены префиксы для таблиц и она называется ibf_members или как-то иначе. Проверьте и замените во всех запросах. Обратите внимание, массовое изменение часовых поясов через базу имеет один существенный минус: в результате таких действий пострадают пользователи из сопредельных стран, которые часовой пояс не меняют. Это Армения, Белоруссия, Узбекистан, Таджикистан, Туркменистан, Грузия, Казахстан, Киргизия, а также Китай, некоторые страны Ближнего Востока и ЮВА. Учитывайте, какая у вас структура посетителей. Кроме того, вы не сможете правильно перевести время для Чукотки, Самарской и Кемеровской областей, Камчатского и Забайкальского краев и Удмуртии.

И еще раз, обратите внимание: Россия не переходит на зимнее время! Россия меняет часовые пояса, то есть "сдвигается" по времени на запад относительно всех остальных стран.

Надеюсь, кому-то пригодится.
4

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 723
  • Регистрация: 20-Март 09
  • Репутация: 2 271
  • IPB version:3.1.x
 

Отправлено 15 Октябрь 2014 - 17:53

Просмотреть сообщениеAlien2001 сказал(а):

Для этого нужно выполнить следующие запросы:

Либо выполнить один
UPDATE members SET time_offset=time_offset-1 WHERE time_offset > 2 AND time_offset NOT IN(5) AND members_auto_dst=0

0

#3 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 15 Октябрь 2014 - 18:14

Просмотреть сообщениеsiv1987 15 Октябрь 2014 - 17:53 сказал(а):

Либо выполнить один
UPDATE members SET time_offset=time_offset-1 WHERE time_offset > 2 AND time_offset NOT IN(5) AND members_auto_dst=0



Лучше так не делать. Там есть всякие разные экзотические оффсеты типа GMT + 6:30. И их затрагивать незачем. Понятно, что на русскоязычном форуме вряд ли есть люди из Кабула, но из Бомбея в принципе могут быть. Мы же хотим сделать максимально чисто.

Кроме того, там еще одна загогулина имеется, которая из данной формулы выбивается:
UPDATE members SET time_offset=10 WHERE time_offset=12 AND members_auto_dst=0

0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 723
  • Регистрация: 20-Март 09
  • Репутация: 2 271
  • IPB version:3.1.x
 

Отправлено 15 Октябрь 2014 - 18:22

Просмотреть сообщениеAlien2001 сказал(а):

Мы же хотим сделать максимально чисто.

Ну ок. Исправим чтобы было все "чисто"

UPDATE members SET time_offset=IF(time_offset=12, time_offset-2, time_offset-1) WHERE time_offset BETWEEN 3 AND 12 AND time_offset NOT IN(5) AND members_auto_dst=0

1

#5 Пользователь не на сайте   Благодарный ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 17-Ноябрь 14
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 17 Ноябрь 2014 - 18:24

Зарегился, чтобы сказать вам СПАСИБО! :rolleyes:
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна