На странице нужно выводить слова с адекватными окончаниями в зависимости от числа. Таких слов достаточно.
Как правильно сделать это? Только начал изучать laravel не очень понятно куда выносить логику.
public static $time_hour = array('час', 'часа', 'часов');
public static $time_minute = array('минута', 'минуты', 'минут');
/*
* остальные слова...
*/
public static function getNumEnding($number, $ends)
{
if($number == 0) {
return $ends[0];
}
if ($number < 1) {
if ($number < 0.3) {
return '¼ '.$ends[1];
}
if ($number > 0.6) {
return '¾ '.$ends[1];
}
return '½ '.$ends[1];
}
$i = ceil($number) % 1000;
if ($i >= 11 && $i <= 19) {
return $number.' '.$ends[2];
}
switch ($i) {
case (1):
return $number.' '.$ends[0];
case (2):
case (3):
case (4):
return $number.' '.$ends[1];
default:
return $number.' '.$ends[2];
}
}
echo getNumEnding(5, $time_hour); //5 часов
echo getNumEnding(3, $time_minute);//3 минуты
Пытался описать функцию и переменные в контроллере, но не получается вызвать во вьюхе (ошибка, оно и понятно).