PHP: Нормальное склонение существительных при счиcлении

10.08.2009 - В общем, Всякое

При раздаботке php-приложений, как и при любой атоматизации, очень часто встает проблема преподнесения информации в «человеческом» виде. Согласитесь, не очень приятно видеть на сайтах надписи типа «Сегодня нас посетило 1 человек(а)» — человеческий язык на сайте по сравнению с роботами выигрывает также как нормальная сисястая девушка перед резиновой бабой.

Сразу оговорюсь, что данный способ служит для нормального склонения существительных при указании их количества.

Способ, который я предлагаю на идеальный не претендует, но я использую именно его.

Решение представлено на примере склонения дат (год, года, лет). Используется для того чтобы вывести информацию о том, сколько лет человеку. Выводит примерно так: 1983, 21 год

[cc lang=»php» nowrap=»true»]
$dr = («дата рождения человека»);
$date = date(«Y»,strtotime($dr)); //получаем год рождения
$year = date(«Y»)- $date; //текущий год минус год рождения, получаем количество лет, прожитых человеком.
$str = strval($year); // преобразуем полученные данные в строку
$last = $str{strlen($str)-1}; // получаем последний сомвол строки
If ($last == 1)
{ //начнаем перебирать условия
$god = ‘год’;
}
If ($last == 2 or $last == 3 or $last == 4)
{
$god = ‘года’;
}
If ($last >= 5 and $last <= 10 or $asd2 == 11)
{ //если последний символ больше либо равно 5 и меньше либо равно 10-ти или равно 11-ти, пишем «лет»
$god = ‘лет’;
}
echo $date.’ ‘.$god.'<br>’; //Выводим дату рождения и кол-во лет
[/cc]

Метки:

PHP: Нормальное склонение существительных при счиcлении: 2 комментария

Андрей

спс — как рас искал скрипт дня рождения — а то чет мой не работал…

Вася

спасибо, реально помогло. Не сразу понял, почему php ругается на < в > d 14 строке 😀

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *