Я использую Solr 7.7.x, который импортирует данные, включая даты из MySQL.В БД время на сервере сохраняется текущий часовой пояс.После импорта solr он конвертируется в UTC.В моем случае это приводит к сдвигу в 2 часа при извлечении данных:
MySQL:
"date_created":"2019-04-01 17:18:45"
Запрос импорта MySQL:
SELECT DATE_FORMAT( c.date_created, '%Y-%m-%dT%H:%i:%sZ' ) AS date_created FROM cls
solr:
"date_created":"2019-04-01T19:18:45Z",
PHP:
date("Y-m-d H:i:s", strtotime($item['date_created']));
Я также пытался:
$tz = new DateTimeZone('Europe/Berlin');
$date = new DateTime($classified['date_created']);
$date->setTimezone($tz);
$ad['time_created'][$index] = $date->format('Y-m-d H:i:s');
Тот же результат, время смещено на 2 часа.Если я поменяю DateTimeZone на US, он сместится на 9 часов, что показывает, что по крайней мере он имеет какой-то эффект.
Я временно исправил его на: $ad['time_created'][$index] = date("Y-m-d H:i:s", strtotime($classified['date_created'])-7200);
, что не выглядит для меня хорошим решением.
Как сохранить время от MySQL и каков рекомендуемый подход для работы с часовыми поясами в solr?