我最近一直在使用Carbon来显示人性化的时间字符串,但由于某种原因,我只能让它显示主要因素,例如,我有一个日期需要显示该日期之前的时间。例如,如果距离现在6天,4小时32分钟,它目前仅显示“6天”。
我怎样才能让它显示小时数,可能还有分钟?当它只给你几天时,它看起来有点可怕,很多人可能想知道更多的时间和秒钟?
我无法在Carbon文档中找到任何内容。我在laravel 5.3视图中使用它,如果它甚至是相关的。
继承我的代码:
{{ \Carbon\Carbon::createFromTimeStamp(strtotime($item->created_at))->diffForHumans() }}
答案 0 :(得分:4)
在这种情况下,您不应该使用diffForHumans()
,因为它只返回一个不再有效的字符串。这是最终结果。
最好使用Carbon
对象,如下所示:
$created = \Carbon\Carbon::createFromTimeStamp(strtotime($item->created_at));
然后,在视图中添加:
{{ $created ->diff(\Carbon\Carbon::now())->format('%d days, %h hours and %i minutes'); }}
您可以延长一段时间:
$created ->diff(\Carbon\Carbon::now())->format('%y year, %m months, %d days, %h hours and %i minutes');
编辑(根据评论):
如果你这样做:
$diff = $created->diff(Carbon::now());
var_dump($diff);
你得到这个结果:
object(DateInterval)[113]
public 'y' => int 0
public 'm' => int 0
public 'd' => int 6
public 'h' => int 4
public 'i' => int 32
public 's' => int 29
public 'f' => float 0.397424
public 'weekday' => int 0
public 'weekday_behavior' => int 0
public 'first_last_day_of' => int 0
public 'invert' => int 0
public 'days' => int 6
public 'special_type' => int 0
public 'special_amount' => int 0
public 'have_weekday_relative' => int 0
public 'have_special_relative' => int 0
// results depend of the current time
从那里,您可以浏览元素以创建满足您需求的最佳答案。