Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Обновление часовых поясов

Опубликовано:

С 26 октября в России снова изменяется система исчисления времени и вводится новая шкала часовых зон (подробности - http://www.rg.ru/2014/07/25/vremiya-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 или как-то иначе. Проверьте и замените во всех запросах. Обратите внимание, массовое изменение часовых поясов через базу имеет один существенный минус: в результате таких действий пострадают пользователи из сопредельных стран, которые часовой пояс не меняют. Это Армения, Белоруссия, Узбекистан, Таджикистан, Туркменистан, Грузия, Казахстан, Киргизия, а также Китай, некоторые страны Ближнего Востока и ЮВА. Учитывайте, какая у вас структура посетителей. Кроме того, вы не сможете правильно перевести время для Чукотки, Самарской и Кемеровской областей, Камчатского и Забайкальского краев и Удмуртии.

 

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

 

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

Рекомендованные сообщения

Опубликовано:

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

Либо выполнить один

UPDATE members SET time_offset=time_offset-1 WHERE time_offset > 2 AND time_offset NOT IN(5) AND members_auto_dst=0

Опубликовано:
  • Автор

Либо выполнить один

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
Опубликовано:

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

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

 

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 месяц спустя...
Опубликовано:

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

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.