add more indicators and a new function to return relative time in the past and the future

This commit is contained in:
Mario
2024-12-07 20:41:13 +00:00
parent d37d181d94
commit e88ae54bef
5 changed files with 60 additions and 14 deletions

View File

@@ -414,11 +414,11 @@ class ThreadItem {
'str_app' => sprintf( t('from %s'), $item['app']),
'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created']),
'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('Last edited %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'])) : ''),
'expiretime' => (($item['expires'] > NULL_DATE) ? sprintf( t('Expires %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'])) : ''),
'editedtime' => (($item['edited'] != $item['created']) ? sprintf(t('Last edited %s'), relative_time($item['edited'])) : ''),
'expiretime' => (($item['expires'] > NULL_DATE) ? sprintf(t('Expires %s'), relative_time($item['expires'])) : ''),
'lock' => $lock,
'locktype' => $locktype,
'delayed' => $item['item_delayed'],
'delayed' => (($item['item_delayed']) ? sprintf(t('Published %s'), relative_time($item['created'])) : ''),
'privacy_warning' => $privacy_warning,
'verified' => $verified,
'unverified' => $unverified,

View File

@@ -268,6 +268,40 @@ function relative_date($posted_date, $format = null) {
return $abs;
}
function relative_time($timestamp) {
$timestamp = datetime_convert('UTC', date_default_timezone_get(), $timestamp);
$now = new DateTime();
$time = new DateTime($timestamp);
$interval = $now->diff($time);
$prefix = '';
$appendix = ' ' . t('ago');
if ($time > $now) {
$prefix = t('in') . ' ';
$appendix = '';
}
if ($interval->y > 0) {
return $prefix . $interval->y . ' ' . plural_dates('y', $interval->y) . $appendix;
} elseif ($interval->m > 0) {
return $prefix . $interval->m . ' ' . plural_dates('m', $interval->m) . $appendix;
} elseif ($interval->d > 0) {
return $prefix . $interval->d . ' ' . plural_dates('d', $interval->d) . $appendix;
} elseif ($interval->h > 0) {
return $prefix . $interval->h . ' ' . plural_dates('h', $interval->h) . $appendix;
} elseif ($interval->i > 0) {
return $prefix . $interval->i . ' ' . plural_dates('i', $interval->i) . $appendix;
} elseif ($interval->s > 0) {
return $prefix . $interval->s . ' ' . plural_dates('s', $interval->s) . $appendix;
} else {
return t('now');
}
}
function plural_dates($k,$n) {
switch($k) {

View File

@@ -32,9 +32,6 @@
{{if $item.location}}
{{$item.location}}
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock"></i>
{{/if}}
{{if $item.editedtime}}
<i class="bi bi-pencil" title="{{$item.editedtime}}"></i>
{{/if}}
@@ -46,6 +43,12 @@
{{if $item.no_comment}}
<i class="bi bi-ban" title="{{$item.no_comment}}"></i>
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock" title="{{$item.delayed}}"></i>
{{/if}}
{{if $item.expiretime}}
<i class="bi bi-clock-history" title="{{$item.expiretime}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
{{if $item.thr_parent_uuid}}

View File

@@ -26,9 +26,6 @@
{{if $item.location}}
{{$item.location}}
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock"></i>
{{/if}}
{{if $item.editedtime}}
<i class="bi bi-pencil" title="{{$item.editedtime}}"></i>
{{/if}}
@@ -40,6 +37,12 @@
{{if $item.no_comment}}
<i class="bi bi-ban" title="{{$item.no_comment}}"></i>
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock" title="{{$item.delayed}}"></i>
{{/if}}
{{if $item.expiretime}}
<i class="bi bi-clock-history" title="{{$item.expiretime}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
{{if $item.pinned}}

View File

@@ -26,18 +26,24 @@
{{if $item.location}}
{{$item.location}}
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock"></i>
{{/if}}
{{if $item.editedtime}}
<i class="bi bi-pencil"></i>
<i class="bi bi-pencil" title="{{$item.editedtime}}"></i>
{{/if}}
{{if $item.verified}}
<i class="bi bi-shield-check" title="{{$item.verified}}"></i>
{{elseif $item.forged}}
<i class="bi bi-shield-exclamation text-danger" title="{{$item.forged}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
{{if $item.no_comment}}
<i class="bi bi-ban" title="{{$item.no_comment}}"></i>
{{/if}}
{{if $item.delayed}}
<i class="bi bi-clock" title="{{$item.delayed}}"></i>
{{/if}}
{{if $item.expiretime}}
<i class="bi bi-clock-history" title="{{$item.expiretime}}"></i>
{{/if}}
<small class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</small>
</div>
{{if $item.pinned}}
<div class="wall-item-pinned" title="{{$item.pinned}}" id="wall-item-pinned-{{$item.id}}"><i class="bi bi-pin-fill"></i></div>