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