Время форума не перешло на летнее

Автор dmitriy_af, 29 марта 2009, 03:15:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

dmitriy_af

Как можно самому перевести форум на летнее время? Автоматически почему то перехода не произошло...

digger®

Цитата: dmitriy_p от 29 марта 2009, 03:15:59
Как можно самому перевести форум на летнее время? Автоматически почему то перехода не произошло...

Перевести время на сервере или правильно настроить часовой пояс на сервере.

Zorkiy4

Я корректирую при помощи изменения разницы во времени в настройках форума.

Администрирование -> Характеристики и настройки -> Основные настройки -> Разница во времени

MuzZL3

Цитата: Zorkiy4 от 29 марта 2009, 18:10:11
Я корректирую при помощи изменения разницы во времени в настройках форума.

Администрирование -> Характеристики и настройки -> Основные настройки -> Разница во времени
Большое спасибо, помогло

jazz

время на сервере стоит правильно .. сервак его перевел сам ..
разница между сервером и форумом вот здесь Администрирование -> Характеристики и настройки -> Основные настройки -> Разница во времени
стоит НОЛЬ
однако форум показывает время на час меньше чем время на серваке!

не хочу добавлять этот час через админку ИМХО не правильно это

как быть?

digger®

Цитата: jazz от 31 марта 2009, 09:01:34
время на сервере стоит правильно .. сервак его перевел сам ..
разница между сервером и форумом вот здесь Администрирование -> Характеристики и настройки -> Основные настройки -> Разница во времени
стоит НОЛЬ
однако форум показывает время на час меньше чем время на серваке!

не хочу добавлять этот час через админку ИМХО не правильно это

как быть?

В своем профиле выставить правильный часовой пояс.

jazz

зачем мне это надо в своем профиле? .. а остальным 5000 пользователям тоже выставить этот час в профиле?

я ж говорю на сервере одно время, в админке разница 0 и при этом форум время показывает на 1 час меньше ...  не правильно это!

Mr. Anviss

#7
Можно сделать еще вот так (smf 1.1.восемь):
Находишь в файле Subs.php строку 832, вот так она выглядит
$time $logTime + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600;
и правишь ее чтобы она выглядела так:
$time = ($logTime + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600)+3600;

Для 2.0 rc1:тот же файл на начиная с строки 741 по 746
что имеем:
$time $log_time + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600;
// Just the forum offset?
elseif ($offset_type == 'forum')
$time $log_time $modSettings['time_offset'] * 3600;
else
$time $log_time;

что хочем получить:

$time 
= ($log_time + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600)+3600;
// Just the forum offset?
elseif ($offset_type == 'forum')
$time = ($log_time $modSettings['time_offset'] * 3600)+3600;
else
$time $log_time+3600;
Вот и перевел время на форуме вперед на 1 час

jazz

Цитата: anviss от 31 марта 2009, 11:59:50
Можно сделать еще вот так (smf 1.1.восемь):
Находишь в файле Subs.php строку 832, вот так она выглядит
$time $logTime + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600;
и правишь ее ...
из чего я заключаю что в эту функцию передается время уже смещенное на час от системного  т.к.  ($user_info['time_offset'] + $modSettings['time_offset']) * 3600 даст ноль  ... откуда приходит вызов timeformat() с таким временем?

Mavn

фигней маетесь вместо того чтобы просто поменять разницу во времени код лопатите.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

digger®

Цитата: jazz от 31 марта 2009, 09:42:03
зачем мне это надо в своем профиле? .. а остальным 5000 пользователям тоже выставить этот час в профиле?

я ж говорю на сервере одно время, в админке разница 0 и при этом форум время показывает на 1 час меньше ...  не правильно это!
И все 5000 живут в одном часовом поясе и в одной стране?

Mr. Anviss

Цитата: Mavn от 31 марта 2009, 18:38:18
фигней маетесь вместо того чтобы просто поменять разницу во времени код лопатите.
тю, а я причем если человек не хочет в разнице во времени в админке вместо нуля поставить нужное число?...

Drakonsa

Мне больше интересно, почему время на форуме не перевелось после перевода на сервере...

jazz

Цитата: Drakonsa от 31 марта 2009, 21:35:06
Мне больше интересно, почему время на форуме не перевелось после перевода на сервере...
вот и мне тоже ..


Цитата: digger от 31 марта 2009, 21:17:07
И все 5000 живут в одном часовом поясе и в одной стране?
Именно! .. и даже в одном городе как ни странно :)


Цитата: anviss от 31 марта 2009, 21:31:57
тю, а я причем если человек не хочет в разнице во времени в админке вместо нуля поставить нужное число?...
Разницу я поставил конечно .... но вот ведь глюк это! следовательно исправлять надо! так?

Mr. Anviss

to jazz а ты уверен что на сервере время переведено на летнее?

jazz


Mr. Anviss


jazz

Цитата: anviss от 01 апреля 2009, 14:27:44
И на чем зиждется Ваша увереность?

я сам админ сервера.

[~]#date
Thu Apr  2 09:48:42 YEKST 2009

0daliska

#18
Вот и у меня та же самая трабла!!! С тем же самым столкнулась!!!
Только перевод уже на зимнее время!!!
Неужели ничего другого, как ставить каждый раз -1 (+1) разработчики не придумали до сих пор?
Каким образом вообще происходит синхронизация времени с сервером, если форум не понимает автоматически переходов???

Насчет перевода времени у хостера - уверена, поскольку мой домашний ПК с их сервером времени синхронизируется... И все в порядке... перевод произведен!!! А вот на форуме время на 1 час больше положенного...  idiot
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

digger®

Цитата: 0daliska от 26 октября 2009, 11:51:52
Вот и у меня та же самая трабла!!! С тем же самым столкнулась!!!
Только перевод уже на зимнее время!!!
Неужели ничего другого, как ставить каждый раз -1 (+1) разработчики не придумали до сих пор?
Каким образом вообще происходит синхронизация времени с сервером, если форум не понимает автоматически переходов???
Никак она не происходит. Форум это набор скриптов, которым незачем что-то знать о переходе времени.

0daliska

#20
Я нашла решение!!!!
В строке формирования функции времени форума в файле Subs.php:
// The current time with offset.
function forum_time($use_user_offset = true, $timestamp = null)
{
global $user_info, $modSettings;
if ($timestamp === null)
$timestamp = time();
elseif ($timestamp == 0)
return 0;

return $timestamp + ($modSettings['time_offset'] + ($use_user_offset ? $user_info['time_offset'] : 0)) * 3600;
}

добавила строчку: date_default_timezone_set('Asia/Novosibirsk'); - это моя часовая зона!!!
то есть получилось вот так:

// The current time with offset.
function forum_time($use_user_offset = true, $timestamp = null)
{
global $user_info, $modSettings;
    date_default_timezone_set('Asia/Novosibirsk');
if ($timestamp === null)
$timestamp = time();
elseif ($timestamp == 0)
return 0;

return $timestamp + ($modSettings['time_offset'] + ($use_user_offset ? $user_info['time_offset'] : 0)) * 3600;
}


Кроме того прописала в profile.temlplate.php в самом начале ту же функцию:
<?php
// Version: 1.1.2; Profile

date_default_timezone_set('Asia/Novosibirsk');

// Template for the profile side bar - goes before any other profile template.

И все нормализовалось!!!! Попробовала тестовому пользователю прибавить время на 2 часа, все прекрасно работает!!!
Создала сообщение - время корректное!!! В логах форума ошибок нет...
Так что странно, что это не учли разработчики при модификации версии...
Всем, кто использует на хостинге версию php не ниже 5.1 и столкнулся с аналогичной проблемой, рекомендую вопользоваться этим решением!!!!
Возможные поддерживаемые зоны приводятся здесь: http://ru2.php.net/manual/en/timezones.php
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only


0daliska

#22
Цитата: digger от 26 октября 2009, 20:43:56
А если я из Самары, то зачем мне ваш форум будет втюхивать Новосибирскую зону?
Если Вы из Самары, Вам любой форум будет втюхивать ту зону, в которой он находится... Мне же SMF communty forum "втюхивает" московску зону, и ничего подправила зону на свою, поставив +3 в своем профиле, и радуюсь!!!

На любом форуме по умолчанию при установке форума берется время с сервера без учета часовой зоны (не заложено это в SMF)... Просто текущее время сервера... У вас в админке стоит корректировка часовой зоны, где Вы устанавливаете отличие своего времени форума от времени сервера... Все замечательно... Форумчане, заполняя свой профиль, производят корректировку своего времени от времени сервера... Все прекрасно работает...
А дальше наступает последнее воскресенье октября или последнее воскресенье марта... И выясняется, что часы вашего форума либо отстают на 1 час, либо убегают вперед на 1 час... Соответственно, время для юзеров сбивается также...
Варианты следующие, которые Вы предлагаете - идем, как Администратор и добавляем (убавляем) 1 час в Админке в характеристиках и настройках конфигурации... Это не правильно в корне!!!!!!!
Время форума должно соответствовать времени сервера и иметь НОРМАЛЬНУЮ с ним связь и синхронизацию!!!!!!!!!!!!
Цитата: digger от 26 октября 2009, 13:56:06
Никак она не происходит. Форум это набор скриптов, которым незачем что-то знать о переходе времени.
Форум ДОЖЕН знать, время какой часовой зоны использовать по умолчанию!!!!! И соответственно, если сервер автоматически переводит время, то и форум САМ должен перейти на это время... Для этого мы и правим скрипт, который за это отвечает!!!!!

Я привела пример для своей зоны, поскольку не считала нужным приводить все возможные варианты... Взяла так, как написала у себя и дала ссылку, где можно посмотреть поддерживаемые функцией часовые зоны, чтобы форумчане могли выбрать нужную им!!!

Так что, если хотите установите для Москвы время на форуме...
тогда Ваша строчка будет выглядеть так:
date_default_timezone_set('Europe/Moscow');

или вообще по Гринвичу - как угодно сделать можно!!! для времени форума по умолчанию!!!!
Тогда Ваш пользователь войдя на форум, ОДИН раз скорректирует время в своем профиле на нужное количество часов вперед или назад... И больше заморачиваться не будет!!!

Ровно как и Админ не будет вписывать каждые полгода корректировки времени +1(-1) и 0 - все будет происходить автоматически, при переходе на зимнее/летнее время...

ЗЫ: Я что, преступление совершила, выставив это решение, или это страшная тайна, которую я вдруг открыла всему сообществу???
Хотите дальше ставить -1(+1) в профиле, никто не заставляет... Колхоз - дело добровольное!!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

digger®

Цитата: 0daliska от 26 октября 2009, 21:51:08
...
Многа букав, в основном восклицательные знаки.

Не волнуйтесь так, нервные клетки не восстанавливаются.

Цитата: 0daliska от 26 октября 2009, 21:51:08
Ровно как и Админ не будет вписывать каждые полгода корректировки времени +1(-1) и 0 - все будет происходить автоматически, при переходе на зимнее/летнее время...
Я не вписываю на своем форуме ничего, само почему то правильно показываеся.

Цитировать
Хотите дальше ставить -1(+1) в профиле, никто не заставляет... Колхоз - дело добровольное!!!!
Тут вообще не понял о чем речь.

0daliska

Цитата: digger от 26 октября 2009, 22:17:02
Многа букав, в основном восклицательные знаки.

Не волнуйтесь так, нервные клетки не восстанавливаются.

;D А что Вы хотели от блондинки? .... Эмоции шкалят!!!
Цитата: digger от 26 октября 2009, 22:17:02
Я не вписываю на своем форуме ничего, само почему то правильно показываеся.
Ну так я и написала, что:
Цитировать
...Всем, кто использует на хостинге версию php не ниже 5.1 и столкнулся с аналогичной проблемой, рекомендую вопользоваться этим решением!!!!
Зато у других они возникают... Хостинги разные бывают... Мой например работает с любыми часовыми зонами и перевод времени просходит для часовых зон... Не думаю, что мой хостинг в этом уникален...
Знаю еще несколько форумов с точно с такой же проблемой. Время на сервере переводится, а форум перевод не воспринимает!!! Администратор не заморачивается этим вопросом, вот мне и приходится, как пользователю,  летом ставить +4 ко времени пользователя, а зимой менять на +3. И все юзерам также...
Цитата: digger от 26 октября 2009, 22:17:02
Тут вообще не понял о чем речь.
Так правильно, раз Вам этого не приходится делать, так и не понимаете ;)
А первые сообщения этой темы прочтете, может, поймете... Проблема имеет место быть, даже несмотря на то, что на Вашем форуме, она не возникает!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only


0daliska

Ну вот видите, а у меня SMF 1.1.10
В нем такой настройки нет..
Радует, что хоть в SMF2 это учли ;)
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

digger®

#27
Расследование показало что в SMF1 тоже есть Таймзона. Просто в админке нет настройки для нее и задается она только при установке или обновлении форума.

Вручную можно установить изменив в таблице smf_settings значение value для variable default_timezone
Например:

UPDATE smf_settings SET VALUE='Europe/Moscow' WHERE variable='default_timezone'

Вместо Europe/Moscow подставить свою таймзону, список можно посмотреть здесь http://php.net/manual/en/timezones.php
Работает это только для PHP >= 5.1

Дальнейшее расследование выявило существование мода Timezone Select (include automatic DST correction)

Вопрос добавлен в FAQ по SMF1.

0daliska

Ну вот, давно бы так!!!
А то зачем, да не может быть!!!
Пока девушка не предложила решения в две строчки, мужская половина даже ухом не вела в поиске решения... А так сразу есть результат - мое решение - через правку php в две строчки, решение, найденное расследованием команды поддержки SMF, - через запрос к БД в одну строку + мод нашелся (правда с длинным кодом, но с добавлением функционала, что тоже не плохо!!!)- все не зря тему подняли!!!
Каков выбор у пользователей, однако, появился!!!
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

johnvv

Цитата: 0daliska от 26 октября 2009, 14:55:40
Я нашла решение!!!!
В строке формирования функции времени форума в файле Subs.php:
// The current time with offset.
function forum_time($use_user_offset = true, $timestamp = null)
{
global $user_info, $modSettings;
if ($timestamp === null)
$timestamp = time();
elseif ($timestamp == 0)
return 0;

return $timestamp + ($modSettings['time_offset'] + ($use_user_offset ? $user_info['time_offset'] : 0)) * 3600;
}

добавила строчку: date_default_timezone_set('Asia/Novosibirsk'); - это моя часовая зона!!!
то есть получилось вот так:

// The current time with offset.
function forum_time($use_user_offset = true, $timestamp = null)
{
global $user_info, $modSettings;
    date_default_timezone_set('Asia/Novosibirsk');
if ($timestamp === null)
$timestamp = time();
elseif ($timestamp == 0)
return 0;

return $timestamp + ($modSettings['time_offset'] + ($use_user_offset ? $user_info['time_offset'] : 0)) * 3600;
}


Кроме того прописала в profile.temlplate.php в самом начале ту же функцию:
<?php
// Version: 1.1.2; Profile

date_default_timezone_set('Asia/Novosibirsk');

// Template for the profile side bar - goes before any other profile template.

И все нормализовалось!!!! Попробовала тестовому пользователю прибавить время на 2 часа, все прекрасно работает!!!


Сделал так как здесь написано. Время поменялось. Но если зайти в топик то время опять показывается старое. Попробовал методом тыка в разные template.php вставлять строку date_default_timezone_set('Asia/Novosibirsk'); - не помогло  :-[ Где нужно код модифицировать, чтобы и в топиках правильное время показывалось? Спасибо!

digger®

Цитата: johnvv от 10 июля 2010, 12:02:23
Сделал так как здесь написано. Время поменялось. Но если зайти в топик то время опять показывается старое. Попробовал методом тыка в разные template.php вставлять строку date_default_timezone_set('Asia/Novosibirsk'); - не помогло  :-[ Где нужно код модифицировать, чтобы и в топиках правильное время показывалось? Спасибо!

http://www.simplemachines.ru/index.php?topic=8039.msg70483#msg70483

johnvv

Цитата: digger от 10 июля 2010, 12:12:39
http://www.simplemachines.ru/index.php?topic=8039.msg70483#msg70483
Спасибо. Это я видел. Но хотелось бы простое решение через вставку date_default_timezone_set('Europe/Moscow'); в нужном месте. Дело за малым - найти такое место  wallbash

digger®

Цитата: johnvv от 10 июля 2010, 22:49:54
Спасибо. Это я видел. Но хотелось бы простое решение через вставку date_default_timezone_set('Europe/Moscow'); в нужном месте. Дело за малым - найти такое место  wallbash

А чем это решение не устраивает? Как раз вставка в нужном месте.

ЦитироватьSMF1 поддерживает таймзоны, но в админке нет настроек для изменения. Таймзона задается только при установке или обновлении форума.
Вручную можно установить, изменив в таблице smf_settings значение value для variable default_timezone
Например:

UPDATE smf_settings SET VALUE='Europe/Moscow' WHERE variable='default_timezone'

Вместо Europe/Moscow подставить свою таймзону, список можно посмотреть здесь http://php.net/manual/en/timezones.php

johnvv

Цитата: digger от 10 июля 2010, 22:53:54
А чем это решение не устраивает? Как раз вставка в нужном месте.
Не устраивает тем что не знаю куда и как это вставить, а .php отредактировать я уже научился  :)

Lamo

Не понятно, откуда берется разница во времени.

Покажу картинки

1. Время и зона сервера


2. Настройки времени на форуме


3. таблица smf_settings


4. Профиль пользователя и результат отображения времени


Что интересно, достаточно изменить в админке зону на Europe/Kiev (на сервере ничего не меняя) и на форуме правильно отображается  Киевское время.

Жека

Тоже стояло Moscow, но потом, когда пошла разница в 1 час, чтобы не ковыряться в коде, выставил GMT-4 и всё :)

Lamo

Сча опять скажут, что у нас руки кривые, а мотор ровный :)

GeorG

Цитата: Жека от 01 ноября 2012, 16:55:20чтобы не ковыряться в коде, выставил GMT-4 и всё
Дык... Чтоб поменять время, код не ковыряют, настраивается в админке (что собственно и сделали). Ну или серверное время...

Цитата: Lamo от 01 ноября 2012, 20:06:06Сча опять скажут, что у нас руки кривые, а мотор ровный :)
^^
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Mavn

на хосте стоит около 10 форумов ни на одном время не менялось однако все норм работает
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

GeorG

У меня на ВПС тоже что-то со временем творилось...
У меня там привязка на автоматическое обновления на Московское. Я выставляю свою дату, а ВПС обновляет снова, скидывая на час. Поставил в админке +1, и успокоился... Времени нет пока лазить, по другим настройкам смотреть.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Lamo

Цитата: Жека от 01 ноября 2012, 16:55:20
Тоже стояло Moscow, но потом, когда пошла разница в 1 час, чтобы не ковыряться в коде, выставил GMT-4 и всё :)


В Москве разве не GMT+4 ?
GMT-4 это Нью-Йорк

GeorG

Не проще ли, не трогать зоны, а юзать настройку (там чуть выше) - "Разница во времени". Просто поставьте там 1, это прибавит на один час.
А зону поставьте - Europe/Moscow
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Жека

Ну, вообще-то да, так будет правильнее, GeorG, спасибо!

Lamo

Так проще, так и сделаем

Но факт остается фактом. Час времени форум отнимает от правильного Московского времени
и путает GMT =4 и +4