{% else-1 %}
Скрипт предназначен для точного вычисления количества лет, месяцев и дней, прошедших с определенной даты, например, дня рождения. Числа, которые получаются в результате вычисления склоняются в соответствии с правилами русского языка. Имеется ограничение: так как используются даты в формате UNIXSTAMP, скрипт работает только с датами после 1 января 1970 года.

                        
<?php 
// 24 января 1985 года
$birthday = mktime(0, 0, 0, 1, 24, 1985);
echo birthday($birthday);

// Количество лет, месяцев и дней, прошедших со дня рождения
function birthday($sec_birthday)
{
// Сегодняшняя дата
$sec_now = time();
// Подсчитываем количество месяцев, лет
for($time = $sec_birthday, $month = 0;
$time < $sec_now;
$time = $time + date('t', $time) * 86400, $month++){
$rtime = $time;
}
$month = $month - 1;
// Количество лет
$year = intval($month / 12);
// Количество месяцев
$month = $month % 12;
// Количество дней
$day = intval(($sec_now - $rtime) / 86400);
$result = declination($year, "год", "года", "лет")." ";
$result .= declination($month, "месяц", "месяца", "месяцев")." ";
$result .= declination($day, "день", "дня", "дней")." ";
return $result;
}

// Склонение числа $num
function declination($num, $one, $ed, $mn, $notnumber = false)
{
// $one="статья";
// $ed="статьи";
// $mn="статей";
if($num === "") print "";
if(($num == "0") or (($num >= "5") and ($num <= "20")) or preg_match("|[056789]$|",$num))
if(!$notnumber)
return "$num $mn";
else
return $mn;
if(preg_match("|[1]$|",$num))
if(!$notnumber)
return "$num $one";
else
return $one;
if(preg_match("|[234]$|",$num))
if(!$notnumber)
return "$num $ed";
else
return $ed;
}
?>
1 37 0
0

Нет фото
pox4e * 0.83
• 22 сен 2014, 08:04


// $one="статья";
// $ed="статьи";
// $mn="статей";

это к дате рождение имеет значение? Скапипастил откуд какойто мусор.

0

Нет фото
NeaDek(WAT) * [мошенник] 0.57
• 21 сен 2014, 07:07


бесполезная хрень