函数为我提供了原始列数据(Laravel)

时间:2018-09-05 09:42:03

标签: php laravel date datetime

我正在与Laravel合作,我想显示的格式当然是created_at时间戳,但是仅在id = 1的情况下显示,因此是最新的时间戳。

public function statistics(){

  $first = DB::table('articles')
                 ->select('created_at')
                 ->where('id', '=', 1)
                 ->get();

  return view('pages.statistics')->with('first', $first);;

}

刀片:

{{ $first}}

我想要一个格式化的日期,但是当我使用日期功能时,它会自动将日期设置为1970年1月1日

这就是我得到的:

[{“ created_at”:“ 2018-08-23 11:45:34”}]

我应该使用Carbon吗,如果可以,怎么办?

3 个答案:

答案 0 :(得分:0)

这是您可以尝试的json数组

$first=json_decode($first,true);

然后在您的视图中发送$first[0]['created_at']

这将仅返回您要查找的日期字段 2018-08-23 11:45:34

答案 1 :(得分:0)

首先: 如果您没有获得雄辩的模型实例,那么日期将不会转换为Carbon对象。

文章是雄辩的榜样吗?如果是这样,您应该这样处理:

在模型中:

protected $dates = ['created_at'];

在控制器中:

$article = \App\Article::where('id',1)->get()
return view('pages.statistics')->with('article', $article);

在刀片中:

{{$article->created_at}}

或者如果您要访问碳对象

{{article->created_at->format('M-d')}}

如果article不是一个雄辩的模型(听起来应该是这样),则必须像这样手动创建Carbon对象:

$first = \Carbon\Carbon::createFromFormat('Y-m-d H:m:s',$first->first()->created_at)

答案 2 :(得分:0)

将代码更改为以下内容:

public function statistics(){

    $first = DB::table('articles')
             ->select('created_at')
             ->where('id', '=', 1)
             ->first();

    return view('pages.statistics')->with('first', $first);

}

然后,您可以执行$first->created_at。您也可以将其传递到Carbon中,以按照自己的意愿对其进行格式化。