From 8b75e02e489c4f02d7749f79615187921d8c0fc4 Mon Sep 17 00:00:00 2001 From: brettp Date: Mon, 22 Feb 2010 15:15:00 +0000 Subject: Fixes #1531: Correctly implemented dates for friendly times. No more coding while watching the Olympics! git-svn-id: http://code.elgg.org/elgg/trunk@3965 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/elgglib.php | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'engine/lib/elgglib.php') diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 5f3bfc9f9..9b5b34d86 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -1226,39 +1226,48 @@ function page_draw($title, $body, $sidebar = "") { function friendly_time($time) { $diff = time() - ((int) $time); - if ($diff < 60) { - return elgg_echo("friendlytime:justnow"); - } else if ($diff < 3600) { - $diff = round($diff / 60); + $minute = 60; + $hour = $minute * 60; + $day = $hour * 24; + + if ($diff < $minute) { + $friendly_time = elgg_echo("friendlytime:justnow"); + } else if ($diff < $hour) { + $diff = round($diff / $minute); if ($diff == 0) { $diff = 1; } + if ($diff > 1) { $friendly_time = sprintf(elgg_echo("friendlytime:minutes"), $diff); + } else { + $friendly_time = sprintf(elgg_echo("friendlytime:minutes:singular"), $diff); } - $friendly_time = sprintf(elgg_echo("friendlytime:minutes:singular"), $diff); - } else if ($diff < 86400) { - $diff = round($diff / 3600); + } else if ($diff < $day) { + $diff = round($diff / $hour); if ($diff == 0) { $diff = 1; } + if ($diff > 1) { $friendly_time = sprintf(elgg_echo("friendlytime:hours"), $diff); + } else { + $friendly_time = sprintf(elgg_echo("friendlytime:hours:singular"), $diff); } - $friendly_time = sprintf(elgg_echo("friendlytime:hours:singular"), $diff); } else { - $diff = round($diff / 86400); + $diff = round($diff / $day); if ($diff == 0) { $diff = 1; } + if ($diff > 1) { $friendly_time = sprintf(elgg_echo("friendlytime:days"), $diff); + } else { + $friendly_time = sprintf(elgg_echo("friendlytime:days:singular"), $diff); } - - $friendly_time = sprintf(elgg_echo("friendlytime:days:singular"), $diff); } - $timestamp = htmlentities(date(elgg_echo('friendlytime:date_format', $time))); + $timestamp = htmlentities(date(elgg_echo('friendlytime:date_format'), $time)); return "$friendly_time"; } -- cgit v1.2.3