【问题标题】:Function gives me raw column data (Laravel)函数给了我原始列数据(Laravel)
【发布时间】:2018-09-05 09:42:03
【问题描述】:

我正在使用 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}}

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

这是我得到的:

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

我应该使用 Carbon 吗?如果可以,如何使用?

【问题讨论】:

  • 你能解释更多吗?你在哪里格式化来自数据库的日期??
  • 你需要通过 $first->created_at 得到这个

标签: php laravel date datetime


【解决方案1】:

将您的代码更改为以下内容:

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 以按照您的意愿进行格式化。

【讨论】:

    【解决方案2】:

    这是一个json数组,你可以试试

    $first=json_decode($first,true);
    

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

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

    【讨论】:

      【解决方案3】:

      首先: 如果您没有获得 eloquent 模型的实例,则日期不会被转换为 Carbon 对象。

      文章是 Eloquent 模型吗?如果是这样,您应该这样做:

      在模型中:

      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')}}
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        • 1970-01-01
        • 2020-09-13
        相关资源
        最近更新 更多