通过laravel Eloquent Model以dd / mm / yyyy插入日期格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过laravel Eloquent Model以dd / mm / yyyy插入日期格式相关的知识,希望对你有一定的参考价值。

我正在使用Laravel Eloquent,我有一个带日期字段的模型。

我的日期值是dd / mm / yyyy。通过导入CSV文件将数据输入系统。文件中的日期值采用dd / mm / yyyy格式。

如何通过laravel eloquent模型插入格式为dd/mm/yyyy的日期。

我的模型问题如下。

class Issue extends Model
{
    protected $table = 'issue';
    protected $primaryKey = 'ACC_NO';
    protected $keyType = 'String';
     public $incrementing = false;
    public $timestamps = false;
    protected $dates= ['issue_date','due_date'];



   public function setIssueDateAttribute($value)
    {

     $this->attributes['issue_date'] = Carbon::createFromFormat('d/m/Y', $value)->toDateString();
  }
    public function setDueDateAttribute($value)
    {
   $this->attributes['due_date'] = Carbon::createFromFormat('d/m/Y', $value)->toDateString();
  }
}

但它仍未设置为mysql数据库中dd / mm / yyyy的格式

答案

您似乎正在尝试以特定格式存储或检索日期值,数据库接受Y-m-d format.i.e(yyyy-mm-dd)中的数据我建议您为相应的模型定义一个存取器。例如

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

注意:使用碳碳;

在课程开始之前在模型文件中使用它。

另一答案

您可以使用$model->your_date_property = Carbon::parse($someDate)->format('dd/mm/yyyy');手动执行此操作

或者您可以自动执行此操作。来自the docs

默认情况下,时间戳格式为'Y-m-d H:i:s'。如果需要自定义时间戳格式,请在模型上设置$dateFormat属性。此属性确定日期属性在数据库中的存储方式。

protected $dateFormat = 'dd/mm/yyyy';

以上是关于通过laravel Eloquent Model以dd / mm / yyyy插入日期格式的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 Eloquent 主键作为多键

Laravel Eloquent Model :: find不起作用

Laravel 的 Eloquent 公共静态函数“create”在 Model.php 中发生了啥?

Laravel Eloquent ORM 数据model操作

需要将查询转换为 Eloquent Model laravel

如何在Laravel 4中使用Eloquent Model增加列