碳:显示小时和分钟?

时间:2017-05-13 11:41:15

标签: php laravel frameworks

我最近一直在使用Carbon来显示人性化的时间字符串,但由于某种原因,我只能让它显示主要因素,例如,我有一个日期需要显示该日期之前的时间。例如,如果距离现在6天,4小时32分钟,它目前仅显示“6天”。

我怎样才能让它显示小时数,可能还有分钟?当它只给你几天时,它看起来有点可怕,很多人可能想知道更多的时间和秒钟?

我无法在Carbon文档中找到任何内容。我在laravel 5.3视图中使用它,如果它甚至是相关的。

继承我的代码:

{{ \Carbon\Carbon::createFromTimeStamp(strtotime($item->created_at))->diffForHumans() }}

1 个答案:

答案 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

从那里,您可以浏览元素以创建满足您需求的最佳答案。