doulongsha5478 2018-06-08 12:56
浏览 100
已采纳

laravel没有显示时间戳的日期部分

I'm trying to insert a value for a date into my datatables instance but I can't quite get the format right.

My controller is pulling in a mysql timestamp called 'created_at':

if( $d->created_at > $deadline){
    $d->call_status = 'new';
}

I'm dumping this and it returns the correct data, and currently in my datatables it dumps the correct data, however it's a full timestamp.

So this:

<td class="createdAt">
    @if(!is_null($this->created_at))
        {{ $this->created_at }}
    @endif
</td>

Works but returns 06/12/2018 00:00:00

I just want the date portion. However, when I try this:

<td class="createdAt">
    @if(!is_null($this->created_at))
        {{ $this->created_at->date->format('Y-m-d') }}
    @endif
</td>

It says it can't call format() on a string.

The format line works on my other columns but those are mysql DATE fields, not timestamps.

What would be best practice to get this to properly show the date portion only?

  • 写回答

4条回答 默认 最新

  • dounao2829 2018-06-08 13:34
    关注

    You can use attribute casting if it is inside Models.

    protected $casts = [
        'created_at' => 'date:Y-m-d',
    ];
    

    Alternatively depending on where you use it.

    Carbon::parse($this->created_at)->format('Y-m-d');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了