Вывод даты со словесным названием месяца в родительном падеже
Часто может возникнуть ситуация, когда дата в полях или свойствах элементов может быть заполнена в формате, который, например, по умолчанию стоит в компонентах – ДД.ММ.ГГГ, или в каком-нибудь другом.
Предлагаю код, с помощью которого можно перевести дату в формат со словесным написанием месяца и на русском языке:
<?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.
Оставьте комментарий
Если эта статья была полезной для вас, оставьте комментарий ниже или задайте интересующий Вас вопрос. Ваш опыт может помочь другим читателям!
Написать комментарий