日期在eloquent / laravel中作为日期时间返回

时间:2018-04-23 22:11:11

标签: php laravel

我想要的是什么:

当我将模型作为 date 列的json返回时,我得到2010-10-10 00:00:00 这是错误的,因为日期存储为2010-10-10而不是时间。

有点混乱

laravel docs的date mutators实际上是'datetime'变异器。 created_at等是日期时间。不是约会。因此,似乎选择了“日期”这个名称。那应该是'dateTimesAndDates'。现在我不想更改所有字段的dateTime格式,只为所有日期只返回日期,我最好的选择是什么?为每个日期列使用mutator?

我的模特:

class MyUser extends Eloquent
{
  protected $guarded = [
      'id', 'user_id'
  ];

    protected $dates = [
        'birthdate'
    ];

将birthdate视为日期而不是字符串?

1 个答案:

答案 0 :(得分:0)

这是因为数据库中的列类型是DateTime而不是Date。

您可以解决此问题。

use Carbon\Carbon;

public function getBirthdateAttribute($value){
    return Carbon::parse($value)->format('Y-m-d');
}

OR

在您的迁移文件中,将列设为日期

$table->date('birthdate');