+ $t = strtotime($dt);
+ $now = time();
+ $diff = $now - $t;
+
+ if ($now < $t) { # that shouldn't happen!
+ return common_exact_date($dt);
+ } else if ($diff < 60) {
+ return _('a few seconds ago');
+ } else if ($diff < 92) {
+ return _('about a minute ago');
+ } else if ($diff < 3300) {
+ return sprintf(_('about %d minutes ago'), round($diff/60));
+ } else if ($diff < 5400) {
+ return _('about an hour ago');
+ } else if ($diff < 22 * 3600) {
+ return sprintf(_('about %d hours ago'), round($diff/3600));
+ } else if ($diff < 37 * 3600) {
+ return _('about a day ago');
+ } else if ($diff < 24 * 24 * 3600) {
+ return sprintf(_('about %d days ago'), round($diff/(24*3600)));
+ } else if ($diff < 46 * 24 * 3600) {
+ return _('about a month ago');
+ } else if ($diff < 330 * 24 * 3600) {
+ return sprintf(_('about %d months ago'), round($diff/(30*24*3600)));
+ } else if ($diff < 480 * 24 * 3600) {
+ return _('about a year ago');
+ } else {
+ return common_exact_date($dt);
+ }
+}
+
+function common_exact_date($dt) {
+ $t = strtotime($dt);
+ return date(DATE_RFC850, $t);