Часто может возникнуть ситуация, когда дата в полях или свойствах элементов может быть заполнена в формате, который, например, по умолчанию стоит в компонентах – ДД.ММ.ГГГ, или в каком-нибудь другом.

Предлагаю код, с помощью которого можно перевести дату в формат со словесным написанием месяца и на русском языке:

<?php

function month_name_rod($month)
{
    return [
        1 => 'января',
        2 => 'февраля',
        3 => 'марта',
        4 => 'апреля',
        5 => 'мая',
        6 => 'июня',
        7 => 'июля',
        8 => 'августа',
        9 => 'сентября',
        10 => 'октября',
        11 => 'ноября',
        12 => 'декабря',
    ][$month];
}

function russian_date_format($time, $withYear = true)
{
    //переводим дату в timestamp
    $time = is_numeric($time) ? $time : strtotime($time);

    //возвращаем дату с годом или без
    //получая название месяца
    return $withYear ? sprintf(
        '%s %s %s',
        date('j', $time),
        month_name_rod(date('n', $time)),
        date('Y', $time),
    ) : sprintf(
        '%s %s',
        date('j', $time),
        month_name_rod(date('n', $time)),
    );
}

Представленная функция russian_date_format() принимает на вход или строку с датой или временную метку timestamp. В качестве второго параметр можно указать, нужно ли выводить еще дату с годом или только день и месяц. При этом если чисто месяца от 1 до 9, то "0" впереди выводиться не будет, а месяц будет написан именно в родительном падеже.

Например, с помощью этой функции выведена дата в начале этой статьи. Да, я знаю, что, например, компонентам в Битриксе можно задать параметр "ACTIVE_DATE_FORMAT" => "j F Y", однако мне все равно удобнее воспользоваться данной вспомогательной функцией, которая объявлена в /local/php_interface/init.php.