С 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:
Если вы не хотите утруждать своих посетителей ручным переводом часов и корректировкой профайла, вы можете сделать это за них, изменив в базе 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 или как-то иначе. Проверьте и замените во всех запросах. Обратите внимание, массовое изменение часовых поясов через базу имеет один существенный минус: в результате таких действий пострадают пользователи из сопредельных стран, которые часовой пояс не меняют. Это Армения, Белоруссия, Узбекистан, Таджикистан, Туркменистан, Грузия, Казахстан, Киргизия, а также Китай, некоторые страны Ближнего Востока и ЮВА. Учитывайте, какая у вас структура посетителей. Кроме того, вы не сможете правильно перевести время для Чукотки, Самарской и Кемеровской областей, Камчатского и Забайкальского краев и Удмуртии.
И еще раз, обратите внимание: Россия не переходит на зимнее время! Россия меняет часовые пояса, то есть "сдвигается" по времени на запад относительно всех остальных стран.
Надеюсь, кому-то пригодится.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
С 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:
Для английского языка:
в наборах слов core/public_usercp и core/admin_global:
Если вы не хотите утруждать своих посетителей ручным переводом часов и корректировкой профайла, вы можете сделать это за них, изменив в базе members
значение поля time_offset (для московской зоны - с 4 на 3). Для этого нужно выполнить следующие запросы:
В данном примере таблица называется "members", возможно у вас установлены префиксы для таблиц и она называется ibf_members или как-то иначе. Проверьте и замените во всех запросах. Обратите внимание, массовое изменение часовых поясов через базу имеет один существенный минус: в результате таких действий пострадают пользователи из сопредельных стран, которые часовой пояс не меняют. Это Армения, Белоруссия, Узбекистан, Таджикистан, Туркменистан, Грузия, Казахстан, Киргизия, а также Китай, некоторые страны Ближнего Востока и ЮВА. Учитывайте, какая у вас структура посетителей. Кроме того, вы не сможете правильно перевести время для Чукотки, Самарской и Кемеровской областей, Камчатского и Забайкальского краев и Удмуртии.
И еще раз, обратите внимание: Россия не переходит на зимнее время! Россия меняет часовые пояса, то есть "сдвигается" по времени на запад относительно всех остальных стран.
Надеюсь, кому-то пригодится.