Здравствуйте. Вопрос по InstantCMS версии 2.х. При переезде с локальной машины на хостинг возникла проблема с отображением возраста публикации — идет сдвиг по времени на час вперед.
Пример:
1. публикуем материал
2. видим "опубликовано 1 час назад"
3. в течении часа видим "опубликовано 59, 58, 57 минут назад… только что"
Серверное время верное, пхп и мускул также отдают верное текущее время. Запись в базу данных также идет верного времени. Но на сайте отображается со сдвигом на час вперед.
Удалось добиться идентичного глюка на локальной машине путем отключения расширения timezonedb. На хостинге данное расширение включено, но версия более ранняя — 2014.9. На локальной машине (где все отображается верно) — 2014.10.
Собственно, вопрос (в первую очередь к разработчикам): существует ли воркэраунд данной проблемы без смены версии расширения? На хостинге еще несколько сайтов на разных движках, где проблем со временем в текущей конфигурации не наблюдается. Не сильно вдохновляет бороться со временем еще и на них (естественно, в случае, если такая проблема возникнет).
Сдвиг возраста публикации на час вперед
#1
22 апреля 2015 в 11:48
Продолжил копание в проблеме. Взял таблицу ленты активности, слабал 2 простеньких скрипта. Запрашиваем дату записи 4596 из таблицы активности (дата — 2015-04-28 11:20:21)
Вариант 1. Запрос даты стандартными средствами пхп.
Результат
Вариант2. Запрос той же даты используя системный класс cmsDatabase
Результат
Разница все тот же час.
Вариант 1. Запрос даты стандартными средствами пхп.
$sql = 'SELECT date_pub FROM cms_activity WHERE id=4596 ORDER BY date_pub DESC LIMIT 1';
$db = new cmsDatabase(); $row = $db->getRow('activity', 'id=4596', 'date_pub', '');
#3
21 мая 2015 в 16:39
Вопрос разрешился.
Myqsl адекватно воспринимает
и неадекватно
Одна строчка в database.php — и вуаля. Хотя обе конструкции должны работать идентично. Скорее всего, использование таймзон как в пхп — явление последнего порядка у среднестатистического пользователя хостинга и никому не было дела до таблиц соответсвия mysql. Естественно, они как при царе горохе и остались. Такие дела.
Тему можно закрывать
Myqsl адекватно воспринимает
SET TIME_ZONE='+3:00'
SET TIME_ZONE='Europe/Moscow'
Тему можно закрывать