вопрос
Помогите, есть php скрипт:
Он выводит на сайте человеко понятные даты.
Например так:
день и 9 часов назад
неделю и день назад
3 недели и 3 дня назад
месяц и неделю назад
2 месяца и 3 недели назад
Как сократить скрипт, что нужно удалить из скрипта, чтобы стало так:
Вместо день и 9 часов назад стало день назад
Вместо неделю и день назад стало неделю назад
Вместо 3 недели и 3 дня назад стало 3 недели назад
Вместо месяц и неделю назад стало месяц назад
Вместо 2 месяца и 3 недели назад стало 2 месяца назад
Не хватает знаний чтобы исправить, как только не пытался.
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
function plural($n, $plurals) {
$plural =
($n % 10 == 1 && $n % 100 != 11 ? 0 :
($n % 10 >= 2 && $n % 10 <= 4 &&
($n % 100 < 10 or $n % 100 >= 20) ? 1 : 2));
return $plurals[$plural];
}
function relativeTime($dt, $precision = 2) {
$times = array(
365*24*60*60 => array("год", "года", "лет"),
30*24*60*60 => array("месяц", "месяца", "месяцев"),
7*24*60*60 => array("неделю", "недели", "недель"),
24*60*60 => array("день", "дня", "дней"),
60*60 => array("час", "часа", "часов"),
60 => array("минуту", "минуты", "минут"),
);
$diff = time() - $dt;
if($diff < 60) $output='меньше минуты';
else {
$output = array();
$exit = 0;
foreach($times as $period => $name) {
if($exit >= $precision || ($exit > 0 && $period < 60)) break;
$result = floor($diff / $period);
if ($result > 0) {
if($result == 1) $output[] = plural($result, $name);
else $output[] = $result . ' ' . plural($result, $name);
$diff -= $result * $period;
$exit++;
} else if ($exit > 0) $exit++;
}
if ($precision < 3) $sep = " и "; else $sep = ", ";
$output = implode($sep, $output);
}
return $output;
}
?>
Он выводит на сайте человеко понятные даты.
Например так:
день и 9 часов назад
неделю и день назад
3 недели и 3 дня назад
месяц и неделю назад
2 месяца и 3 недели назад
Как сократить скрипт, что нужно удалить из скрипта, чтобы стало так:
Вместо день и 9 часов назад стало день назад
Вместо неделю и день назад стало неделю назад
Вместо 3 недели и 3 дня назад стало 3 недели назад
Вместо месяц и неделю назад стало месяц назад
Вместо 2 месяца и 3 недели назад стало 2 месяца назад
Не хватает знаний чтобы исправить, как только не пытался.
function relativeTime($dt, $precision = 2) {
наfunction relativeTime($dt, $precision = 1) {