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?

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

Try

{{ $this->created_at->format('Y-m-d') }}

You shouldn't need it, but you can update your model if this is still a string:

protected $dates = ['created_at'];

strtotime() Will convert your string to a timestamp format, so maybe try like this :

{{ date('Y-m-d', strtotime($this->created_at->date)) }}

You can use mutators , try this: In your model create

public function getCreatedDateAttribute(){
return date('Y-m-d',strtotime($this->created_at));
}