Well, that's very rude. Although I, too, are rude enough and did not make a decision for dates that are less than 1970. (It was just too lazy.)
function vypiska($skolko, $chego) { global $array; if ($skolko == 0) $skolko = 10; if ($skolko == 1) $a = 3 * $chego + 1; if ($skolko >= 2 && $skolko <= 4) $a = 3 * $chego + 2; if ($skolko >= 5 && $skolko <= 20) $a = 3 * $chego + 3; if ($skolko > 20 && $skolko < 100) return vypiska($skolko % 10, $chego); if ($skolko >= 100) return vypiska($skolko % 100, $chego); return $array[$a]; } $array = array( "", "день", "дня", "дней", "месяц", "месяца", "месяцев", "год", "года", "лет" ); $std = $_GET['d']; $ed = mktime(0, 0, 0, date("m,d,Y")); $e = abs($ed - $std); $f = date('jn-Y', $e); $dat = explode("-", $f); $day = $dat[0] - 1; $month = $dat[1] - 1; $year = $dat[2] - 1970; $soob = $text . " "; if ($year != 0) $soob = $soob . $year . " " . vypiska($year, 2); if ($year != 0 && $month != 0 && $day != 0) $soob = $soob . ", "; if ($year != 0 && $month != 0 && $day == 0) $soob = $soob . " и "; if ($month == 0 && $day != 0 && $year != 0) $soob = $soob . " и "; if ($month != 0) $soob = $soob . $month . " " . vypiska($month, 1); if ($month != 0 && $day != 0) $soob = $soob . " и "; if ($day != 0) $soob = $soob . $day . " " . vypiska($day, 0) . ".";