Laravel: углерод укорачивает diffForHumans () - PullRequest
0 голосов
/ 17 сентября 2018

Как мы можем урезать diffForHumans()?

Как $post->created_at->diffForHumans() вернуть время назад Как 3 days ago или 57 minutes ago, или 2 hours ago.

Как мы можем бытьв состоянии вернуть 57 mins ago или 1W ago и т. д.

Есть ли способ обойти?

Обыскал, но ничего не получил.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Попробуйте это.

shortRelativeDiffForHumans()

Docs

0 голосов
/ 17 сентября 2018

Третье значение, переданное diffForHumans (), предназначено для сокращения вывода на экран.

Попробуйте что-то вроде,

$post->created_at->diffForHumans(null, false, true)

здесь вы можете увидеть комментарии для diffForHumans () и значения, которые он принимает.


     /**
     * Get the difference in a human readable format in the current locale.
     *
     * When comparing a value in the past to default now:
     * 1 hour ago
     * 5 months ago
     *
     * When comparing a value in the future to default now:
     * 1 hour from now
     * 5 months from now
     *
     * When comparing a value in the past to another value:
     * 1 hour before
     * 5 months before
     *
     * When comparing a value in the future to another value:
     * 1 hour after
     * 5 months after
     *
     * @param Carbon|null $other
     * @param bool        $absolute removes time difference modifiers ago, after, etc
     * @param bool        $short    displays short format of time units
     * @param int         $parts    displays number of parts in the interval
     *
     * @return string
     */
    public function diffForHumans($other = null, $absolute = false, $short = false, $parts = 1)
    {
0 голосов
/ 17 сентября 2018

Carbon реализует различные конфигурации времени вызова с помощью магических методов. Множество возможных конфигураций задокументировано в признаке поддержки . Сканирование с помощью этих методов, похоже, что вы хотите shortRelativeDiffForHumans:

$c = new Carbon\Carbon('now -1 day 4 hours');                                    
dump($c->diffForHumans(), $c->shortRelativeDiffForHumans());                     

"20 hours ago"
"20h ago"

В противном случае вы можете использовать str_replace или аналогичные строковые функции для настройки результирующего значения.

Я отмечу, в ответ на @ вклад Джованни , что эти магические методы - просто многословные обертки вокруг вызова diffForHumans. Я предпочитаю эти более длинные имена методов и их вариации, потому что они самодокументируются. Использование diffForHumans третьего аргумента true мало что говорит мне при сканировании кода годом позже!

...