$num = '123150';
if($num[strlen($num)-1] == '1'){
// 'день';
} elseif(in_array($num[strlen($num)-1], array(2,3))){
// 'дня';
} else {
// 'дней';
}
if( $ndata == '1'){
echo "$ndata день";
} elseif( substr($ndata, -1) == '2'){
echo "$ndata дня";
} elseif( substr($ndata, -1) == '3'){
echo "$ndata дня";
} elseif( substr($ndata, -1) == '4'){
echo "$ndata дня";
} else {
echo "$ndata дней";
}
вы забыли про одну интересную вещь 4-дня, но 14-дне
Спасибо! Ещё 101, 201 и т.д. добавилАвтор оригинала: vovanium
что-то у народа с математикой плохо
вы забыли про одну интересную вещь 4-дня, но 14-дней
if( $ndata == '1'){
$ndata = "$ndata день";
} elseif( $ndata == '2'){
$ndata = "$ndata дня";
} elseif( $ndata == '3'){
$ndata = "$ndata дня";
} elseif( $ndata == '4'){
$ndata = "$ndata дня";
} elseif( substr($ndata, -2) == '11'){
$ndata = "$ndata дней";
} elseif( substr($ndata, -2) == '12'){
$ndata = "$ndata дней";
} elseif( substr($ndata, -2) == '13'){
$ndata = "$ndata дней";
} elseif( substr($ndata, -2) == '14'){
$ndata = "$ndata дней";
} elseif( substr($ndata, -2) == '01'){
$ndata = "$ndata день";
} elseif( substr($ndata, -1) == '2'){
$ndata = "$ndata дня";
} elseif( substr($ndata, -1) == '3'){
$ndata = "$ndata дня";
} elseif( substr($ndata, -1) == '4'){
$ndata = "$ndata дня";
} else {
$ndata = "$ndata дней";
}
echo $ndata;
/**
* Склонение существительных с числительными.
* Функция принимает число $n и три строки -
* разные формы произношения измерения величины.
* Необходимая величина будет возвращена.
* Например: pluralForm(100, "рубль", "рубля", "рублей")
* вернёт "рублей".
*
* @param int величина
* @param string форма1
* @param string форма2
* @param string форма3
* @return string
*/
function tpl_tpluralForm($n, $form1, $form2, $form3)
{
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) {
return $form3;
}
if ($n1 > 1 && $n1 < 5) {
return $form2;
}
if ($n1 == 1) {
return $form1;
}
return $form3;
}
function plural($n, $form1, $form2, $form3) {
switch($n%10==1&&$n%100!=11?0: ($n%10>=2&&$n%10<=4&&($n%100<10or$n%100>=20)?1:2)) {
case 0:default:return $form1;case 1:return $form2;case 2:return $form3;
}
}
function plural($n, $form1, $form2, $form3) {
return in_array($n % 10, array(2,3,4)) && !in_array($n % 100, array(11,12,13,14)) ? $form2 : ($n % 10 == 1 ? $form1 : $form3);
}