Неправильное время в админке OpenCart
01/29/2015

После переноса моего сайта MaxyStore (сборка для OpenCart) на другой хостинг начались проблемы с временем на сайте, сайт отставал на 7 часов. Даже после того как правильно выставили время на сервере

  1. [email protected]:~# date
  2. Thu Jan 29 10:59:11 EET 2015

В админке всеравно выбивало 3:59. В php.ini прописал date.timezone = Europe/Kiev, тоже не помогло. После поисков нашел решение, сначало в файле /system/startup.php заменяем:

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

На

  1. date_default_timezone_set('Asia/Yekaterinburg');

Делее в файле /system/database/mysql.php после строки

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

Вставляем код

  1. // get local time on Web/PHP server
  2. $localtime = strtotime(date('Y-m-d H:i:s'));
  3. //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)
  4. $gm_localtime = strtotime(gmdate('Y-m-d H:i:s'));
  5. //find offset in hours (if any - which allows for Daylight Saving Time or British Summer Time (BST))
  6. $diff_hours = ($localtime - $gm_localtime) / 3600;
  7. //Then the Database server needs to be set to this Offset to store/retrieve values as local ones
  8. $adjust = "SET time_zone = '";
  9. if ($diff_hours > 0) {
  10. $adjust .= "+" . ceil($diff_hours);
  11. } elseif ($diff_hours < 0) {
  12. $adjust .= floor($diff_hours);
  13. } else {
  14. $adjust .= "+0";
  15. }
  16. $adjust .= ":00'";
  17. mysql_query($adjust, $this->connection);

Мне помогло надеюсь и вам поможет

  • Комментарии
Загрузка комментариев...