Блог Горошко Андрея 1C-Битрикс Региональные настройки Bitrix\Main\Context\Culture (форматы дат, имен, кодировки)

Региональные настройки Bitrix\Main\Context\Culture (форматы дат, имен, кодировки)

В Битрикс каждый сайт имеет свои «Региональные настройки» (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.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Добавить комментарий

Related Post

Как использовать $APPLICATION->SetPageProperty() в 1С-Битрикс: пример кодаКак использовать $APPLICATION->SetPageProperty() в 1С-Битрикс: пример кода

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать $APPLICATION->SetPageProperty() в 1С-Битрикс: пример кода». Вы узнаете экспертные методики работы с

Как использовать метод SDK sale.order.delete в Битрикс24Как использовать метод SDK sale.order.delete в Битрикс24

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK sale.order.delete в Битрикс24». Вы узнаете экспертные методики работы с

Разработка интернет-магазина с программой трейд-ин (Trade-In) и оценкой б/у товаровРазработка интернет-магазина с программой трейд-ин (Trade-In) и оценкой б/у товаров

Реализация проекта «Разработка интернет-магазина с программой трейд-ин (Trade-In) и оценкой б/у товаров» направлена на создание технологического преимущества компании, масштабирование продаж и обеспечение бесперебойной работы под высокими нагрузками. онлайн-оценка стоимости старого