Sapnesh Naik
Sapnesh Naik

Reputation: 11636

laravel - Carbon | diffForHumans() shorter version?

I'm trying to figure out how to shorten the output from a diffForHumans method provided by the Carbon library in laravel.

The default format of diffForHumans is something like this:(from documentation)

But I want the output to be something like:

  1. 1 h
  2. 5 mins
  3. 5 months
  4. 2 years
  5. Just Now

How can I achieve this?

Upvotes: 11

Views: 9321

Answers (2)

Raymond Cheng
Raymond Cheng

Reputation: 2505

Carbon give you an option to remove 'ago'

$time = \Carbon\Carbon::now()->subMinutes(1)->diffForHumans(null, true)

enter image description here

if you need use like '1 h, 5 mins', just str_replace(['hours', 'minutes'], ['h', 'mins'], $time);

for Just now, you need to specify how long is just now.

Upvotes: 9

linktoahref
linktoahref

Reputation: 7972

As per the source code for diffForHumans

/**
 * Get the difference in a human readable format in the current locale.
 *
 *
 * @param Carbon|null $other
 * @param bool        $absolute removes time difference modifiers ago, after, etc
 * @param bool        $short    displays short format of time units
 *
 * @return string
 */
public function diffForHumans(Carbon $other = null, $absolute = false, $short = false) {
    ...
}

to remove modifiers, pass the second parameter as true and to get shortened version of time pass the third parameter as true

Source code at

vendor/nesbot/carbon/src/Carbon/Carbon.php

Upvotes: 15

Related Questions