[英]Carbon difference of now() vs datetime with “ago” using diffForHumans() method
根据手册: http : //carbon.nesbot.com/docs/#api-humandiff
得到一个ago
将过去的值与默认值进行比较时
但不管我做什么,我不能得到的ago
return $datetime->diffForHumans(Carbon::now())
结果到before
,而
return Carbon::now()->diffForHumans($datetime);
结果到after
,
但正如你可以清楚地看到我上面的两个片段比较past
($ datetime)和现在的默认值(Carbon :: now())所以我无法理解为什么我不能在以前获得? 希望有人可以提供帮助。 我只需要呼应ago
。 谢谢!
您应该使用不带参数的diffForHumans()
并在'date calculation'之后使用,例如:
Carbon::now()->subDays(24)->diffForHumans(); // "3 weeks ago"
或者,如果你有一个日期,你可以使用$datetime->diffForHumans();
:
$datetime = Carbon::createFromDate(2015, 8, 25); // or your $datetime of course
return $datetime->diffForHumans(); // "1 week ago"
虽然@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
$users->created_at
是一个像2018-05-03 14:54:14
这样的日期,这将给出一个像2周前一样的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.