Проблемы со временем (возраст публикации)

Сдвиг возраста публикации на час вперед

 
Посетитель
no avatar
Сообщений: 3
Здравствуйте. Вопрос по InstantCMS версии 2.х. При переезде с локальной машины на хостинг возникла проблема с отображением возраста публикации - идет сдвиг по времени на час вперед.

Пример:
1. публикуем материал
2. видим "опубликовано 1 час назад"
3. в течении часа видим "опубликовано 59, 58, 57 минут назад ... только что"

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

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

Собственно, вопрос (в первую очередь к разработчикам): существует ли воркэраунд данной проблемы без смены версии расширения? На хостинге еще несколько сайтов на разных движках, где проблем со временем в текущей конфигурации не наблюдается. Не сильно вдохновляет бороться со временем еще и на них (естественно, в случае, если такая проблема возникнет).
Посетитель
no avatar
Сообщений: 3
Продолжил копание в проблеме. Взял таблицу ленты активности, слабал 2 простеньких скрипта. Запрашиваем дату записи 4596 из таблицы активности (дата - 2015-04-28 11:20:21)

Вариант 1. Запрос даты стандартными средствами пхп.
Код PHP:
  1.  
  2. $db = mysql_connect($dbhost, $dblogin, $dbpass);
  3. mysql_select_db($dbname, $db);
  4.  
  5. $sql = 'SELECT date_pub FROM cms_activity WHERE id=4596 ORDER BY date_pub DESC LIMIT 1';
  6. $result = mysql_query($sql, $db) or die(mysql_error());
  7. $row = mysql_fetch_assoc($result);
  8. print_r($row);
  9.  
Результат
Код PHP:
  1.  
  2. Array ( [date_pub] => 2015-04-28 11:20:21 )
  3.  
Вариант2. Запрос той же даты используя системный класс cmsDatabase

Код PHP:
  1.  
  2. $db = new cmsDatabase();
  3. $row = $db->getRow('activity', 'id=4596', 'date_pub', '');
  4. print_r($row);
  5.  
Результат
Код PHP:
  1.  
  2. Array ( [date_pub] => 2015-04-28 12:20:21 )
  3.  
Разница все тот же час.
Редактировалось: 2 раз (Последний: 28 апреля 2015 в 13:23)
Посетитель
no avatar
Сообщений: 3
Вопрос разрешился.

Myqsl адекватно воспринимает
Код PHP:
  1. SET TIME_ZONE='+3:00'
и неадекватно
Код PHP:
  1. SET TIME_ZONE='Europe/Moscow'
Одна строчка в database.php - и вуаля. Хотя обе конструкции должны работать идентично. Скорее всего, использование таймзон как в пхп - явление последнего порядка у среднестатистического пользователя хостинга и никому не было дела до таблиц соответсвия mysql. Естественно, они как при царе горохе и остались. Такие дела.

Тему можно закрывать
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.