Php 指定日期对象时,使用now()更新日期字段

Php 指定日期对象时,使用now()更新日期字段,php,laravel,date,model,Php,Laravel,Date,Model,我的问题是关于laravel Eloquant模型系统的日期属性更新 有时当我更改指令属性(有时甚至是日期)时,指令属性更新成功,但日期属性设置为“现在”,这是不正常的 但是,当我使用我的更新功能(见下文)只更新日期时,我的问题就不会出现。 这个问题并不是每次都出现,我不明白为什么 我的php应用程序运行在Apache2服务器上,PHP7.3、Laravel5.8和MariaDB 10.3.15 我试图在指令更新和日期更新后保存我的模型,但我没有改变任何东西。 此外,保存后$delivery v

我的问题是关于laravel Eloquant模型系统的日期属性更新

有时当我更改指令属性(有时甚至是日期)时,指令属性更新成功,但日期属性设置为“现在”,这是不正常的

但是,当我使用我的更新功能(见下文)只更新日期时,我的问题就不会出现。 这个问题并不是每次都出现,我不明白为什么

我的php应用程序运行在Apache2服务器上,PHP7.3、Laravel5.8和MariaDB 10.3.15

我试图在指令更新和日期更新后保存我的模型,但我没有改变任何东西。 此外,保存后$delivery var的转储显示正确的日期,但在数据库中注册的日期与“updated_at”属性的日期相同

控制器中的“我的更新”功能:

public function update(UpdateDeliveryRequest $request)
    {
        $delivery = Delivery::find($request->input('id'));

        if (!(is_null($request->input('instructions'))))
            $delivery->instructions = $request->input('instructions');

        $date = Carbon::create($request->input('date'));
        $date->shiftTimezone(Config::get('app.timezone'));
        $date->setTimezone('UTC'); // Set time to UTC for storing

        $delivery->date = $date;
        $delivery->save();
    }
我的交付模式:

class Delivery extends Model
{
    use SoftDeletes;

    protected $fillable = [
        'deliveryForm_id', 'user_id', 'date', 'instructions',
    ];

    protected $dates = [
        'date',
    ];
}

日期属性必须由用户选择。 attibute是一个字符串,也是由用户编写的

在任何情况下,我都希望我的date属性与输入日期相等


感谢您的帮助。

您确定
Carbon::create($request->input('date'))
返回您期望的日期吗?我怀疑输入日期无法解析,因此现在使用。如果您添加
$date=Carbon::dayed()保存之前,这会更改存储在数据库中的日期吗?

是的,我确信转储会给出正确的日期。添加碳::昨天到现在并没有改变任何事情