1<?php
2/**
3 * Friendly time
4 * Translates an epoch time into a human-readable time.
5 *
6 * @uses string $vars['time']           Unix-style epoch timestamp
7 * @uses int    $vars['number_of_days'] (optional) number of days before friendly time switches to a date format
8 */
9
10use Elgg\Values;
11
12$timestamp = elgg_extract('time', $vars);
13
14try {
15	$date = Values::normalizeTime($timestamp);
16} catch (DataFormatException $e) {
17	return;
18}
19
20$default_friendly_time_number_of_days = elgg_get_config('friendly_time_number_of_days', 30);
21$friendly_time_number_of_days = (int) elgg_extract('number_of_days', $vars, $default_friendly_time_number_of_days);
22
23if (strtotime("-{$friendly_time_number_of_days}days") < $timestamp) {
24	$output = elgg_get_friendly_time($timestamp);
25} else {
26	$output = $date->formatLocale(elgg_echo('friendlytime:date_format:short'));
27}
28
29$attributes = [
30	'title' => $date->formatLocale(elgg_echo('friendlytime:date_format')),
31	'datetime' => $date->format('c'),
32];
33
34echo elgg_format_element('time', $attributes, $output);
35