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

Модуль расширенного управления меню для битрикс

Июнь 14, 2018

Теги: Основное

Работа с региональными настройками с помощью класса "\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(array(

    
"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
));

Получить объект региональных настроек из базы данных для объекта с идентификатором в $cultureId:


$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

Получить все зарегистрированные в системе региональные настройки:


$result \Bitrix\Main\Localization\CultureTable::getList();

while(
$arCulture=$result->fetch())
{
    
print_r($arCulture);
}
/*
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
)
*/

См. также:

← Переход к списку