6

根据手册: http ://carbon.nesbot.com/docs/#api-humandiff

得到一个ago

将过去的值与现在的默认值进行比较时

但无论我做什么,我都无法得到ago

return $datetime->diffForHumans(Carbon::now())

结果为before, 而

return Carbon::now()->diffForHumans($datetime);

结果为after,

但是您可以清楚地看到我上面的两个片段都比较了past($datetime) 和默认值 now (Carbon::now()) 所以我不明白为什么我不能得到以前?希望有人可以提供帮助。我只需要回应ago。谢谢!

4

2 回答 2

9

您应该diffForHumans()在“日期计算”之后不带参数使用,例如:

Carbon::now()->subDays(24)->diffForHumans();  // "3 weeks ago"

或者,如果你有一个日期,你可以使用 use $datetime->diffForHumans();

$datetime = Carbon::createFromDate(2015, 8, 25); // or your $datetime of course
return $datetime->diffForHumans();  // "1 week ago"
于 2015-09-01T23:21:28.340 回答
4

虽然@baao 给出了一个很好的答案,但Carbon::createFromDate()如果你传递一个原始日期输入,比如 Laravels,这个函数可能会出现问题created_at。现在你必须使用不同的功能。看看下面。

$carbondate = Carbon::parse($users->created_at); 
$past = $carbondate->diffForHumans();
dd($past);

$users->created_at日期在哪里2018-05-03 14:54:14,然后会给出 2 周前的答案。

于 2018-05-18T23:07:27.023 回答