解决huamn函数无法格式未来时的问题

pull/348/head
Henry 2021-08-05 16:03:24 +08:00
parent 1d7c7d7ce6
commit 75141e192d
2 changed files with 23 additions and 12 deletions

View File

@ -114,6 +114,13 @@ return [
'%d week%s ago' => '%d周前',
'%d month%s ago' => '%d月前',
'%d year%s ago' => '%d年前',
'%d second%s after' => '%d秒后',
'%d minute%s after' => '%d分钟后',
'%d hour%s after' => '%d小时后',
'%d day%s after' => '%d天后',
'%d week%s after' => '%d周后',
'%d month%s after' => '%d月后',
'%d year%s after' => '%d年后',
'Set to normal' => '设为正常',
'Set to hidden' => '设为隐藏',
'Recycle bin' => '回收站',

View File

@ -124,25 +124,29 @@ class Date
*/
public static function human($remote, $local = null)
{
$timediff = (is_null($local) || $local ? time() : $local) - $remote;
$chunks = array(
array(60 * 60 * 24 * 365, 'year'),
array(60 * 60 * 24 * 30, 'month'),
array(60 * 60 * 24 * 7, 'week'),
array(60 * 60 * 24, 'day'),
array(60 * 60, 'hour'),
array(60, 'minute'),
array(1, 'second')
);
$time_diff = (is_null($local) || $local ? time() : $local) - $remote;
$tense = $time_diff < 0 ? 'after' : 'ago';
$time_diff = abs($time_diff);
$chunks = [
[60 * 60 * 24 * 365, 'year'],
[60 * 60 * 24 * 30, 'month'],
[60 * 60 * 24 * 7, 'week'],
[60 * 60 * 24, 'day'],
[60 * 60, 'hour'],
[60, 'minute'],
[1, 'second']
];
$name = 'second';
$count = 0;
for ($i = 0, $j = count($chunks); $i < $j; $i++) {
$seconds = $chunks[$i][0];
$name = $chunks[$i][1];
if (($count = floor($timediff / $seconds)) != 0) {
if (($count = floor($time_diff / $seconds)) != 0) {
break;
}
}
return __("%d {$name}%s ago", $count, ($count > 1 ? 's' : ''));
return __("%d $name%s $tense", $count, ($count > 1 ? 's' : ''));
}
/**