1 | <?php |
||
19 | trait DateTimeTrait |
||
20 | { |
||
21 | /** |
||
22 | * Format a date |
||
23 | * |
||
24 | * @param int|string $date |
||
25 | * @param string $format |
||
26 | * |
||
27 | * @return string |
||
28 | */ |
||
29 | 21 | public function date($date, $format = 'F jS \a\t g:i A') |
|
35 | |||
36 | /** |
||
37 | * Displays the timestamp's age in human readable format |
||
38 | * |
||
39 | * @param int $timestamp |
||
40 | * |
||
41 | * @return string |
||
42 | */ |
||
43 | 3 | public function age($timestamp) |
|
44 | { |
||
45 | 3 | if (!$timestamp instanceof \DateTime) { |
|
46 | $timestamp = new \DateTime($timestamp); |
||
47 | } |
||
48 | |||
49 | 3 | $timestamp = $timestamp->getTimestamp(); |
|
50 | 3 | $difference = time() - $timestamp; |
|
51 | 3 | $periods = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade']; |
|
52 | 3 | $lengths = ['60', '60', '24', '7', '4.35', '12', '10']; |
|
53 | 3 | for ($j = 0; $difference >= $lengths[$j]; ++$j) { |
|
54 | $difference /= $lengths[$j]; |
||
55 | } |
||
56 | 3 | $difference = round($difference); |
|
57 | 3 | if ($difference != 1) { |
|
58 | $periods[$j] .= 's'; |
||
59 | } |
||
60 | |||
61 | 3 | return $difference . ' ' . $periods[$j] . ' ago'; |
|
62 | } |
||
63 | |||
64 | /** |
||
65 | * Convert seconds into time duration format |
||
66 | * |
||
67 | * @param int $seconds |
||
68 | * |
||
69 | * @return string |
||
70 | */ |
||
71 | 5 | public function duration($seconds) |
|
94 | } |
||
95 |