Перейти к содержанию
military21

[Решено] Сдвинутое время - вопросы новичка

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

Здравствуйте. На сайте сдвинуто время. Погуглив в phpmyadmin сделал запрос SHOWVARIABLESLIKE'%time_zone%'

результат

system_time_zone GMT

time_zone SYSTEM

Выходит время у меня сдвинуто из-за временной зоны сервера mysql? или сдвиг может задаваться и в другом месте?

И как сменить зону?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может дело в хостинге/VPS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то сервер и, собсно, mysql как раз желательно иметь в GMT.

а вот в PHP уже конвертить GMT в нужный часовой пояс.

date_default_timezone_set

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

погуглил в направлении php - нашел вариант - прописать в php.ini date.timezone = Europe/Moscow .

прописал - ничего не изменилось

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хорошо, подойдем к вопросу с другой стороны.

в чем вообще проблема?

чего вам надо от "timezone" и где именно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в отчете пользователи онлайн и подозреваю что в письмах (надо проверить) время событий сдвинуто судя по всему на гринвич. Например зашел на сайт человек и он конечно же отображается в онлайн посетителях, но время стоит не московское. Надо, чтоб время отображалось реальное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в htaccess

SetEnv TZ Europe/Moscow

или

php_value date.timezone "Europe/Moscow"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

после добавления одой из этих строк время сразу должно поменяться?

Попробовал оба варианта. После заливки сразу переходил на страницу магазина и смотрел в отчетах пльзователи онлайн. Время все так же сдвинуто + заметил что сдвиг не ровно по часам - то есть зашел на страницу в 13-20 по мск а отображается в отчете 10-32 (ну это наверно часы на сервере неправильно идут).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

после добавления одой из этих строк время сразу должно поменяться?

Попробовал оба варианта. После заливки сразу переходил на страницу магазина и смотрел в отчетах пльзователи онлайн. Время все так же сдвинуто + заметил что сдвиг не ровно по часам - то есть зашел на страницу в 13-20 по мск а отображается в отчете 10-32 (ну это наверно часы на сервере неправильно идут).

Напишите уже своему хостеру гневный тикет, ударьте так сказать кулаком по столу, припугните его переездом, скажите уже что вычислите его по айпи, будьте мужиком в конце концов!

А если серьезно, то действительно задайте вопрос хостеру почему у вас на сайте/сервере отдается некорректное время, это судя по всему проблема на их стороне, а не у вас, пусть они и решают. Если и у вас то смотрите модули которые используют определение времени и добавляйте туда +3 часа. Просто разговор ни о чем получается, т.к. неизвестно что у вас за сервер, какие на нем настройки и тп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

написал вопрос с сылкой на данную тему форума

ответ пришел такой

Это решается кодом. Поддержку по коду мы не оказываем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

написал вопрос с сылкой на данную тему форума

ответ пришел такой

Это решается кодом. Поддержку по коду мы не оказываем.

Стандартная отмаза хостеров. Если уж на то пошло, то найдите места в ваших скриптах где определяется текущее время и руками добавляйте к нему определеноое значение. Поиск можно сделать сразу по всем файлам через notepad++, ищите все функции php, связанные со временем.

А вообще знаете что сделайте - создайте просто файл time.php, в нем сделайте просто вывод текущей даты и разместите этот файл в корень вашего сайта, и запустите http://ваш_сайт/time.php и вот если выдастся неверное время, значит пусть хостер не мажется, аналогично сделайте запрос к базе со значением NOW().

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сделал все по 2 абзацу

реальное мск время 11-06

по http://ваш_сайт/time.php 8-18

по запросу к базе со значением NOW() 8-18

дальше что делать с этим?

Для наглядности скопирну сюда еще текст с 1 поста

Погуглив в phpmyadmin сделал запрос SHOWVARIABLESLIKE'%time_zone%'

результат

system_time_zone GMT

time_zone SYSTEM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит это косяк хостинга, а не твой. Просто пришли им ссылку на скрипт time.php, напиши что там всего один оператор date() или time(), что ты там использовал, пусть разбираются. Потому что это их обязанность, ты за это деньги платишь и это не твой головняк. А с хостингами только так и нужно, т.к. иной раз им нужно полдня только обьснять проблему чтобы до них дошло, набирают в техподдержку студентов-первокурсников. У меня вот так на одном довольно популярном хостинг провайдере, сайты без трафика ложились по кд, начали разбиратся, на что как обычно нелепые отмазы типа у вас скрипты тяжелые, на что я им траффика нет, какие скрипты, после чего они мне начали снова оптимизируйте скрипты, я залил на хостинг простой сайт без базы, тупо html файлы - не грузиться, лагает все, пишу ну и что за херня, они немного зашевелились, но один хер отмазки постоянные, в итоге они заявили мне что каждый сайт создает httpd процесс на сервере, которые жрут много оперативной памяти, это был просто финиш! Я написал им о их профпригодности (причем из саппорта со мной общалось 3 сотрудника), и успешно переехал на хороший хостинг, который меня устраивает во всех отношениях и сайты работают как часы. Я перевел туда 20 сайтов и все ок работает.

В заключение добавлю что техподдержка хостинга зачастую завалена глупыми вопросами юзеров-новичков, потому им легче отмазатся, это дает время, а потом уже когда начинаешь с ними ругатся шевелятся, и это не только в хостингах, а практически во всех сферах жизни общества в этой прекрасной стране.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дело в PHP и скриптах.

хостер тут краем бока разве что при запрете изменения @date_default_timezone_set@.

...заметил что сдвиг не ровно по часам...

"сдвиг минут" - проблемы вашего локального девайса (точнее системы), а не хостера.

синхронизируйте локальное время с каким-нибудь ntp-сервером и будет у вас разница только в часах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вы про локальную систему(окна 7) находясь в которой я открываю свой сайт то время у меня на ней синхронизированное с московским.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решаема, оставлю это здесь, может кому-то поможет.

 

У меня часовой пояс Екатеринбург, соответственно для других ЧП вносите изменения.

 

  • В файл .htacces вставляем
   SetEnv TZ Asia/Yekaterinburg
  • в файле /system/startup.php

— заменяем 

if (!ini_get('date.timezone')) {
     date_default_timezone_set('UTC');
}

— на

date_default_timezone_set('Asia/Yekaterinburg');
  • в файле system/database/mysql.php

— после 

mysql_query("SET SQL_MODE = ''", $this->link);

— вставляем

// get local time on Web/PHP server
$localtime = strtotime(date('Y-m-d H:i:s'));

//get local time in GMT/UTC (i.e GMT/UTC is set as +0:00 on database and other timezones are set as +/- hours of this)
$gm_localtime = strtotime(gmdate('Y-m-d H:i:s'));

//find offset in hours 
$diff_hours = ($localtime - $gm_localtime) / 3600;

//Then the Database server needs to be set to this Offset to store/retrieve values as local ones
$adjust = "SET time_zone = '";

if ($diff_hours > 0) {
   $adjust .= "+" . ceil($diff_hours);
} elseif ($diff_hours < 0) {
   $adjust .= floor($diff_hours);
} else {
   $adjust .= "+0";
}   
$adjust .= ":00'";

mysql_query($adjust, $this->link);

Решение было найдено здесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работает. Пребольшое спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал изменения в  в файле /system/startup.php- не помогло.Пишу в саппорт хостера https://hostiq.ua/clients/aff.php?aff=2001 ,через три минуты ответ,"Вам необходимо в Вашей сPanel перейти в "Выбор версии PHP", там нажать на Switch To PHP Options и для показателя "date.timezone" установить -Europe/Kiev"(в моём случае)
И всё заработало!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил в htaccess и все наладилось

php_value date.timezone "Europe/Kiev"
Изменено пользователем zasluga

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.