function RelativeTime($timestamp) {
$difference = time() - $timestamp;
$periods = array(
"sec", "min", "hour", "day", "week", "month", "years", "decade"
);
$lengths = array("60", "60", "24", "7", "4.35", "12", "10");
if ($difference > 0) { // this was in the past
$ending = "ago";
} else { // this was in the future
$difference = -$difference;
$ending = "to go";
}
for ($j = 0; $difference >= $lengths[$j]; $j++)
$difference /= $lengths[$j];
$difference = round($difference);
if ($difference != 1) $periods[$j] .= "s";
$text = "$difference $periods[$j] $ending";
return $text;
}
Я нашел вышеупомянутую функцию PHP на веб-страницах.Кажется, он работает довольно хорошо, за исключением проблем с датами в будущем.
Например, я получаю зацикливание ошибки PHP
деление на ноль
для $difference /= $lengths[$j];
, когда дата в 2033 году.
Есть идеи, как это исправить?Массив уже насчитывает десятилетия, поэтому я надеюсь, что 2033 год приведет к чему-то вроде «2 десятилетия вперед».