Laravel 5.6 时间前的浏览量

Laravel 5.6 time ago in views

<?php

namespace project1\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use View;

class IndexController extends Controller
{
    public function index() 
    {
          $users  = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
          return View::make('pages.dashboard.dashboard',['users' => $users]);
    }
}

是否可以在我的视图中回显 Time Ago (pages.dashboard.dashboard) 之类的东西,

{{ $user->created_at->diffForHumans() }}

期待像这样的输出,

1 min ago

也许对你有帮助

Eloquent 中时间戳的一个很好的半隐藏特性是它们不只是来自数据库的 return 字符串——它们实际上是 return Carbon 的一个实例,一个很棒的PHP 的 DateTime 库的扩展。这意味着一堆函数(我的意思是一堆)在您的模型的时间戳上可用。值得通读 GitHub 自述文件以了解可用的内容,但最酷的方法之一是 diffForHumans(),这是一个方便的小函数,提供了我们经常需要的长期追捧的 "time ago" 格式。

$user = User::first();
echo $user->created_at->diffForHumans(); // 2 days ago

$user->touch();
echo $user->created_at->diffForHumans(); // a second ago

如果created_date是Carbon\Carbon的一个实例,你可以这样做:

$row->created_date->diffForHumans()

如果它不是 Carbon 的一个实例,你可以这样做:

(new Carbon\Carbon($row->created_date))->diffForHumans()

或者您将模型 属性 添加到模型中的 $dates 转换列表,这将在您访问它时将 属性 转换为 Carbon 实例(喜欢 $user->created_date):

class User
{
    protected $dates = [
        'created_date',
    ];
}

如果模型的 $timestamps 设置为 true,字段 created_atupdated_at 会自动添加到此演员表中。如果启用软删除,也会添加 deleted_at

首先,尝试 eloquent 模型。

$users = App\User::orderBy('created_at','desc')->limit(5)->get();

可见

@foreach($users as $user) {{$user->created_at->diffForHumans()}} @endforeach

根据您的情况

$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();

@foreach($users as $user) {{ Carbon\Carbon::parse($user->created_at)->diffForHumans()}} @endforeach

说明

eloquent 模型自动转换为 Carbon 实例,您可以使用所有方法

数据库查询日期 (created_at) 的情况下无法解析,因此我们必须手动解析

在你的时间后写->diffForHumans();。 喜欢 $record->created_date->diffForHumans();

Laravel 5.5> 随便写

{{ $date->created_at->diffForHumans() }}

Returns 之前什么时候