Для исправного функционирования системы битрикс необходимым условием для его работы является правильная настройка времени сервера и базы данных. Рассинхронизация времени может быть в случае, когда неправильно настроена временная зона, либо сервер и база данных находятся на разных машинах.
Так при тестировании системы мы можем видеть сообщение такого плана:
Сервер и сама база данных в моём случае находятся на одной машине, однако из-за разных настроек временной зоны происходит рассинхронизация времени. Давайте это исправим, и установим правильное время на БД и веб-сервере.
Для установки часового пояса на сервере, нам требуется прописать в файле /bitrix/php_interface/dbconn.php запись такого вида:
date_default_timezone_set("Asia/Almaty");
Таким образом, мы выставили временную зону Asia/Almaty для работы нашего проекта на PHP. После этого следует проставить данные для БД, в файле /bitrix/php_interface/after_connect_d7.php добавляем:
$connection = Bitrix\Main\Application::getConnection(); $connection->queryExecute("SET LOCAL time_zone='".date('P')."'");
Первая строка с методом getConnection() уже должна присутствовать в том файле, а вторую строку следует дописать.
Далее открываем файл /bitrix/php_interface/after_connect.php и добавляем в него:
$DB->Query("SET LOCAL time_zone='".date('P')."'");
Не забывает сохранить все изменения в файлах. Временную зону вы указываете свою, актуальную для вас. Посмотреть список временных зон вы можете на сайте Wikipedia. На этом всё, после выполнения этих манипуляций время на сервере и в базе данных будут одинаковыми.