Сенсей
Новичок
Осталось 5 дней , 21 день , 2 часа ... вобщем цифры и нормальный русский ....
Есть потребность выводить такое сообщение :
[ До отключения сообщения осталось 5 часов ]
и
[ До отключения сообщения осталось 5 дней ]
Где 5 - число которое меняется ... часов и дней - тоже между собой меняются ...
Нужно сделать так что бы был нормальный русский ... то есть что б не было такого :
[ До отключения сообщения осталось 5 днЯ ]
А было :
[ До отключения сообщения осталось 5 днЕЙ]
Вот мой код ... но мне он кажется слишком громоздкий
Может можно как то упростить/оптимизировать ?
Есть потребность выводить такое сообщение :
[ До отключения сообщения осталось 5 часов ]
и
[ До отключения сообщения осталось 5 дней ]
Где 5 - число которое меняется ... часов и дней - тоже между собой меняются ...
Нужно сделать так что бы был нормальный русский ... то есть что б не было такого :
[ До отключения сообщения осталось 5 днЯ ]
А было :
[ До отключения сообщения осталось 5 днЕЙ]
Вот мой код ... но мне он кажется слишком громоздкий

Может можно как то упростить/оптимизировать ?
PHP:
$date = 1096725744;
$date_expire = 432000;
$etime = (($date+$date_expire)-time())/3600;
$etime = (int)$etime;
if ($etime < 24)
{
if ($etime < 1)
{
$remain = 'До отключения сообщения осталось меньше часа';
}
else if ($etime == 1 OR $etime == 21)
{
$remain = 'До отключения сообщения остался '.$etime.' час';
}
else if ($etime > 4 AND $etime < 21)
{
$remain = 'До отключения сообщения осталось '.$etime.' часов';
}
else
{
$remain = 'До отключения сообщения осталось '.$etime.' часа';
}
}
else
{
$days = ceil($etime/24);
if ($days == 1 OR $days == 21)
{
$remain = 'До отключения сообщения остался '.$days.' день';
}
else if ($days > 4 AND $days < 21)
{
$remain = 'До отключения сообщения осталось '.$days.' дней';
}
else
{
$remain = 'До отключения сообщения осталось'.$days.' дня';
}
}