Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как определить...
Форумы портала PHP.SU » PHP » Программирование на PHP » Как определить...

Страниц (1): [1]
 

1. Ыыы - 11 Октября, 2008 - 13:08:41 - перейти к сообщению
Здрасте всем! У меня есть число (день из даты), как мне к нему подставить грамотно одно из значений: день, дней, дня, ну чтобы красиво было :) т.е.

13 дней, 21 день, 94 дня, как это автоматом делать?
2. Champion - 11 Октября, 2008 - 13:17:43 - перейти к сообщению
$days[0] = 'дней';
$days[1] = 'день';
$days[2] = 'дня';
$days[3] = 'дня';
...

$n = 12345;
echo $n.' '.$days[ $n % 10 ]
3. Ыыы - 11 Октября, 2008 - 13:57:14 - перейти к сообщению
До 10 канает, после нет :(
4. valenok - 11 Октября, 2008 - 15:13:23 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function dec($int, $expressions=Array('день',"дня","дней"))
  2. {
  3.         if (count($expressions) < 3) $expressions[2] = $expressions[1];
  4.         settype($int, "integer");
  5.  
  6.         $count = $int % 100;
  7.         if ($count >= 5 && $count <= 20) {
  8.                 $result = $expressions['2'];
  9.         } else {
  10.                 $count = $count % 10;
  11.                 if ($count == 1) {
  12.                         $result = $expressions['0'];
  13.                 } elseif ($count >= 2 && $count <= 4) {
  14.                         $result = $expressions['1'];
  15.                 } else {
  16.                         $result = $expressions['2'];
  17.                 }
  18.         }
  19.         return $int." ".$result;
  20. }
5. Ыыы - 11 Октября, 2008 - 16:30:11 - перейти к сообщению
Во, спасибо всем!

 

Powered by ExBB FM 1.0 RC1