fix метода pretty_date для правильного отображения месяца

This commit is contained in:
2026-01-26 13:59:45 +05:00
parent 28ef4cfc55
commit 2d1f96ed3e

View File

@@ -513,62 +513,69 @@
* @param string $language - язык
* @return string
*/
function pretty_date($string, $language = '')
{
// БЕЗОПАСНОСТЬ PHP 8: Приводим к строке, чтобы избежать ошибки NULL в strtr()
$string = (string)$string;
// пытаемся решить проблему для кодировки дат на лок. серверах
// БЕЗОПАСНОСТЬ PHP 8: Проверяем !empty(), чтобы избежать ошибки mb_check_encoding()
if (!empty($string) && ! mb_check_encoding($string, 'UTF-8'))
{
$string = iconv('Windows-1251', 'UTF-8', $string);
}
function pretty_date($string, $language = '')
{
$string = (string)$string;
if (!empty($string) && !mb_check_encoding($string, 'UTF-8'))
{
$string = iconv('Windows-1251', 'UTF-8', $string);
}
if ($language == '')
{
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
}
if ($language == '')
{
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
}
$language = strtolower($language);
$language = strtolower($language);
switch ($language)
{
default:
case 'ru':
$pretty = array(
'Январь' =>'января', 'Февраль' =>'февраля', 'Март' =>'марта',
'Апрель' =>'апреля', 'Май' =>'мая', 'Июнь' =>'июня',
'Июль' =>'июля', 'Август' =>'августа', 'Сентябрь'=>'сентября',
'Октябрь' =>'октября', 'Ноябрь' =>'ноября', 'Декабрь' =>'декабря',
switch ($language)
{
default:
case 'ru':
$pretty = array(
// Месяцы (Именительный -> Родительный)
'Января' => 'января', 'Февраля' => 'февраля', 'Марта' => 'марта',
'Апреля' => 'апреля', 'Мая' => 'мая', 'Июня' => 'июня',
'Июля' => 'июля', 'Августа' => 'августа', 'Сентября' => 'сентября',
'Октября' => 'октября', 'Ноября' => 'ноября', 'Декабря' => 'декабря',
'Январь' => 'января', 'Февраль' => 'февраля', 'Март' => 'марта',
'Апрель' => 'апреля', 'Май' => 'мая', 'Июнь' => 'июня',
'Июль' => 'июля', 'Август' => 'августа', 'Сентябрь' => 'сентября',
'Октябрь' => 'октября', 'Ноябрь' => 'ноября', 'Декабрь' => 'декабря',
'воскресенье'=>'Воскресенье', 'понедельник'=>'Понедельник', 'вторник' =>'Вторник',
'среда' =>'Среда', 'четверг' =>'Четверг', 'пятница' =>'Пятница',
'суббота' =>'Суббота'
);
break;
// Дни недели (делаем с Большой буквы)
'воскресенье' => 'Воскресенье', 'понедельник' => 'Понедельник', 'вторник' => 'Вторник',
'среда' => 'Среда', 'четверг' => 'Четверг', 'пятница' => 'Пятница',
'суббота' => 'Суббота'
);
break;
case 'ua':
case 'uk':
$pretty = array(
'Січень' =>'січня', 'Лютий' =>'лютого', 'Березень'=>'березня',
'Квітень'=>'квітня', 'Травень' =>'травня', 'Червень' =>'червня',
'Липень' =>'липня', 'Серпень' =>'серпня', 'Вересень'=>'вересня',
'Жовтень'=>'жовтня', 'Листопад' =>'листопада', 'Грудень' =>'грудня',
case 'ua':
case 'uk':
$pretty = array(
'Січня' => 'січня', 'Лютого' => 'лютого', 'Березня' => 'березня',
'Квітня' => 'квітня', 'Травня' => 'травня', 'Червня' => 'червня',
'Липня' => 'липня', 'Серпня' => 'серпня', 'Вересня' => 'веересня',
'Жовтня' => 'жовтня', 'Листопада' => 'листопада', 'Грудня' => 'грудня',
'Січень' => 'січня', 'Лютий' => 'лютого', 'Березень' => 'березня',
'Квітень' => 'квітня', 'Травень' => 'травня', 'Червень' => 'червня',
'Липень' => 'липня', 'Серпень' => 'серпня', 'Вересень' => 'вересня',
'Жовтень' => 'жовтня', 'Листопад' => 'листопада', 'Грудень' => 'грудня',
'неділя' =>'Неділя', 'понеділок'=>'Понеділок', 'вівторок'=>'Вівторок',
'середа' =>'Середа', 'четвер' =>'Четвер', 'п’ятниця'=>'П’ятниця',
'субота' =>'Субота'
);
break;
}
'неділя' => 'Неділя', 'понеділок' => 'Понеділок', 'вівторок' => 'Вівторок',
'середа' => 'Середа', 'четвер' => 'Четвер', 'п’ятниця' => 'П’ятниця',
'субота' => 'Субота'
);
break;
}
return (isset($pretty)
? strtr($string, $pretty)
: $string);
}
return (isset($pretty) ? strtr($string, $pretty) : $string);
}
/**