Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


military21

Recommended Posts

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

результат

system_time_zone GMT

time_zone SYSTEM

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

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

Надіслати
Поділитися на інших сайтах


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

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

date_default_timezone_set

Надіслати
Поділитися на інших сайтах

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

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

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

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах


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

Попробовал оба варианта. После заливки сразу переходил на страницу магазина и смотрел в отчетах пльзователи онлайн. Время все так же сдвинуто + заметил что сдвиг не ровно по часам - то есть зашел на страницу в 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-сервером и будет у вас разница только в часах.

Надіслати
Поділитися на інших сайтах

  • 1 year later...

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

 

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

 

  • В файл .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);

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

Надіслати
Поділитися на інших сайтах


  • 1 year later...
  • 1 year later...
  • 1 year later...

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

Надіслати
Поділитися на інших сайтах


  • 7 months later...
  • 1 year later...
В 11.04.2018 в 03:06, Evges сказал:

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

Вот именно!!!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.