mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-05-19 19:09:13 -04:00
Make comment post time display more user-friendly by displaying 'today', 'yesterday', 'x days ago' etc.
This commit is contained in:
@@ -69,5 +69,52 @@ class Comment_Core {
|
||||
$v->item_id = $item_id;
|
||||
return $v;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a human-friendly message showing the amount of time elapsed since the specified
|
||||
* timestamp (e.g. 'said today', 'said yesterday', 'said 13 days ago', 'said 5 months ago').
|
||||
*
|
||||
* @todo Take into account the viewer's time zone.
|
||||
* @todo Properly pluralize strings.
|
||||
* @todo Write test once we settle on the final forms of the messages.
|
||||
*
|
||||
* @param integer $timestamp Unix format timestamp to compare with
|
||||
* @return string user-friendly string containing the amount of time passed
|
||||
*/
|
||||
static function format_elapsed_time($timestamp) {
|
||||
$now = time();
|
||||
$date_info_comment = getdate($timestamp);
|
||||
$date_info_now = getdate($now);
|
||||
|
||||
/* Check if the comment was posted today or yesterday. */
|
||||
if ($date_info_comment['year'] == $date_info_now['year']
|
||||
&& $date_info_comment['mon'] == $date_info_now['mon']) {
|
||||
if ($date_info_comment['mday'] == $date_info_now['mday']) {
|
||||
$message = _('said today');
|
||||
} else if ($date_info_comment['mday'] == $date_info_now['mday'] - 1) {
|
||||
$message = _('said yesterday');
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
|
||||
/* Calculate the number of days, months or years elapsed since the specified timestamp. */
|
||||
$seconds_in_a_day = 86400;
|
||||
$seconds_in_a_month = 2629744;
|
||||
$seconds_in_a_year = 31556926;
|
||||
$time_difference = $now - $timestamp;
|
||||
|
||||
$elapsed_days = round($time_difference / $seconds_in_a_day);
|
||||
$elapsed_months = round($time_difference / $seconds_in_a_month);
|
||||
$elapsed_years = round($time_difference / $seconds_in_a_year);
|
||||
|
||||
if ($elapsed_years > 0) {
|
||||
$message = sprintf(_('said %d years ago'), $elapsed_years);
|
||||
} else if ($elapsed_months > 0) {
|
||||
$message = sprintf(_('said %d months ago'), $elapsed_months);
|
||||
} else {
|
||||
$message = sprintf(_('said %d days ago'), $elapsed_days);
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user