Региональные настройки в Bitrix

Работа с региональными настройками с помощью класса \Bitrix\Main\Context\Culture

Получить текущие настройки

\Bitrix\Main\Context::getCurrent()->getCulture();
/*
Bitrix\Main\Context\Culture Object
(
    [fields:protected] => Array
        (
            [LID] => ru
            [SORT] => 1
            [DEF] => Y
            [ACTIVE] => Y
            [NAME] => Russian
            [FORMAT_DATE] => DD.MM.YYYY
            [FORMAT_DATETIME] => DD.MM.YYYY HH:MI:SS
            [FORMAT_NAME] => #NAME# #LAST_NAME#
            [WEEK_START] => 1
            [CHARSET] => UTF-8
            [DIRECTION] => Y
            [CULTURE_ID] => 1
            [ID] => ru
            [LANGUAGE_ID] => ru
        )

)
*/

Создать свой объект

$culture = new \Bitrix\Main\Context\Culture([
    'FORMAT_DATE'     => 'MM/DD/YYYY',
    'FORMAT_DATETIME' => 'MM/DD/YYYY HH:MI:SS',
    'FORMAT_NAME'     => '#NAME# #LAST_NAME#',
    'CHARSET'         => 'UTF-8',
    'DIRECTION'       => 'Y',
    'WEEK_START'      => 0
])

Объект настроек из базы по ID

$culture = \Bitrix\Main\Context\Culture::wakeUp($cultureId);
/*
Bitrix\Main\Context\Culture Object
(
    [fields:protected] => Array
        (
            [ID] => 1
            [CODE] => ru
            [NAME] => ru
            [FORMAT_DATE] => DD.MM.YYYY
            [FORMAT_DATETIME] => DD.MM.YYYY HH:MI:SS
            [FORMAT_NAME] => #NAME# #LAST_NAME#
            [WEEK_START] => 1
            [CHARSET] => UTF-8
            [DIRECTION] => Y
        )

)
*/

Кодировка объекта

$culture->getCharset();

Формат даты/времени из объекта настроек

$culture->getDateFormat(); // MM/DD/YYYY
// или 
$culture->getDateTimeFormat(); // MM/DD/YYYY HH:MI:SS

Все зарегистрированные в системе региональные настройки

$arCulture = \Bitrix\Main\Localization\CultureTable::query()->fetchAll();
echo '<pre>' . print_r($arCulture, true) . '</pre>';
/*
Array
(
    [ID] => 1
    [CODE] => ru
    [NAME] => ru
    [FORMAT_DATE] => DD.MM.YYYY
    [FORMAT_DATETIME] => DD.MM.YYYY HH:MI:SS
    [FORMAT_NAME] => #NAME# #LAST_NAME#
    [WEEK_START] => 1
    [CHARSET] => UTF-8
    [DIRECTION] => Y
)
Array
(
    [ID] => 2
    [CODE] => en
    [NAME] => en
    [FORMAT_DATE] => MM/DD/YYYY
    [FORMAT_DATETIME] => MM/DD/YYYY H:MI:SS T
    [FORMAT_NAME] => #NAME# #LAST_NAME#
    [WEEK_START] => 0
    [CHARSET] => UTF-8
    [DIRECTION] => Y
)
*/

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *