В Битрикс каждый сайт имеет свои «Региональные настройки» (Culture): формат даты, формат времени, формат имени (Иван Иванов или Иванов Иван), кодировку. В D7 доступ к этим настройкам осуществляется через объект Culture в контексте.
Получение объекта Culture
use Bitrix\Main\Context;
$context = Context::getCurrent();
$culture = $context->getCulture();
// Если нужно для конкретного сайта (не текущего):
// $site = \Bitrix\Main\SiteTable::getById('en')->fetchObject();
// $culture = $site->getCulture();Полезные методы
1. Форматы даты и времени
Не нужно хардкодить ‘d.m.Y’. Используйте настройки сайта.
// Получить формат даты (например, "DD.MM.YYYY")
$dateFormat = $culture->getDateFormat();
// Получить формат даты и времени (например, "DD.MM.YYYY HH:MI:SS")
$dateTimeFormat = $culture->getDateTimeFormat();
// Получить кодировку (например, "UTF-8")
$charset = $culture->getCharset();Пример использования с объектом DateTime:
$now = new \Bitrix\Main\Type\DateTime();
echo $now->format($dateFormat); // Выведет дату в формате текущего сайта2. Формат имени
В разных странах имена пишут по-разному. Битрикс хранит шаблон формата имени (например, #NAME# #LAST_NAME#).
$nameFormat = $culture->getNameFormat();
// Форматируем имя пользователя
$formattedName = \CUser::FormatName(
$nameFormat,
[
"NAME" => "Иван",
"LAST_NAME" => "Иванов",
"SECOND_NAME" => "Иванович",
"LOGIN" => "ivan"
],
true, // htmlspecialchars
false // использовать login если поля пустые
);
echo $formattedName;Вывод:
Использование Context::getCurrent()->getCulture() делает ваши модули и компоненты интернациональными.
Они будут автоматически подстраиваться под формат дат и имен того сайта, на котором установлены.
Bitrix Culture, Context Culture, формат даты битрикс, формат имени, региональные настройки, getDateFormat, getDateTimeFormat.