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条)

报告相同问题?