Php Laravel 5.2中创建的和更新的字段中的日期时间错误

Php Laravel 5.2中创建的和更新的字段中的日期时间错误,php,mongodb,laravel-5.2,Php,Mongodb,Laravel 5.2,我用的是jenssegers mongodb 我正在尝试将创建的和更新的保存在控制器中 "updated_at" : ISODate("1970-01-11T19:45:21.925Z"), "created_at" : ISODate("1970-01-11T19:45:21.925Z") 即使是更新,也会保存错误的日期 在我的app.php中 化名 'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model', 在供应商 'Jensseger

我用的是jenssegers mongodb 我正在尝试将创建的和更新的保存在控制器中

"updated_at" : ISODate("1970-01-11T19:45:21.925Z"),
"created_at" : ISODate("1970-01-11T19:45:21.925Z")
即使是更新,也会保存错误的日期

在我的app.php中

化名

'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model',
在供应商

'Jenssegers\Mongodb\Auth\PasswordResetServiceProvider',
在我的模型中

use Moloquent;

class Task extends Moloquent{
      //$fillables = [];
}

请帮我解决这个问题
提前谢谢

实际上-使用
Jenssers/Laravel MongoDB
软件包时-创建的属性和更新的属性在保存新模型对象时自动设置

但是,如果仍然需要手动设置时间戳或任何其他日期时间字段,则必须将日期时间对象(或Carbon)转换为
MongoDB\BSON\UTCDateTime

所以应该是这样的:

$myModel = new MyModel();
$myModel->created_at = $myModel->fromDateTime(new \DateTime());
//...
对于除created_at/Update_at之外的其他datetime属性:

class Task extends Model
{
    protected  $collection = 'tasks';

    protected $duedate;

    protected  $dates = ['duedate'];

    /** Mutator */
    public function setDuedateAttribute($value)
    {
        /** @var \MongoDB\BSON\UTCDateTime */
        $this->attributes['duedate'] = $this->fromDateTime(
            \DateTime::createFromFormat('d/m/Y H:i', $value . '00:00'));
    }
}

jensegers\Mongodb\elount::fromDateTime()
可以从任何模型实例中获得,因为它继承自父模型(请参见中)。此方法将日期时间转换为可存储的UTCDateTime对象(即内部DateTime mongo rep)。

实际上-使用
jenssegers/Laravel MongoDB
package时-处创建和处更新属性在保存新模型对象时自动设置

但是,如果仍然需要手动设置时间戳或任何其他日期时间字段,则必须将日期时间对象(或Carbon)转换为
MongoDB\BSON\UTCDateTime

所以应该是这样的:

$myModel = new MyModel();
$myModel->created_at = $myModel->fromDateTime(new \DateTime());
//...
对于除created_at/Update_at之外的其他datetime属性:

class Task extends Model
{
    protected  $collection = 'tasks';

    protected $duedate;

    protected  $dates = ['duedate'];

    /** Mutator */
    public function setDuedateAttribute($value)
    {
        /** @var \MongoDB\BSON\UTCDateTime */
        $this->attributes['duedate'] = $this->fromDateTime(
            \DateTime::createFromFormat('d/m/Y H:i', $value . '00:00'));
    }
}


jensegers\Mongodb\elount::fromDateTime()
可以从任何模型实例中获得,因为它继承自父模型(请参见中)。此方法将DateTime转换为可存储的UTCDateTime对象(即内部DateTime mongo rep)。

是否使用
Jenssers/Laravel MongoDB
软件包?另外,为什么要手动设置created_at和updated_at(在创建时自动设置)?在insert中注释created_at和updated_at,并保存在db“updated_at”:ISODate(“1970-01-15T17:25:44.107Z”),“created_at”:ISODate(“1970-01-15T17:25:44.107Z”)无法获取数据,还有为什么日期是错误的@felipsmartinswhy你想手动设置created_at和updated_at?我实际上不知道它们会自动创建,所以我做了。谢谢,请告诉我为什么我的日期在数据库ISODate(“1970-01-15T17:25:44.107Z”)中出错,我想更新相同的记录。更新时是否需要更新_at?请告诉我您使用的是
jenssegers/Laravel MongoDB
软件包吗?另外,为什么要手动设置created_at和updated_at(在创建时自动设置)?在insert中注释created_at和updated_at,并保存在db“updated_at”:ISODate(“1970-01-15T17:25:44.107Z”),“created_at”:ISODate(“1970-01-15T17:25:44.107Z”)无法获取数据,还有为什么日期是错误的@felipsmartinswhy你想手动设置created_at和updated_at?我实际上不知道它们会自动创建,所以我做了。谢谢,请告诉我为什么我的日期在数据库ISODate(“1970-01-15T17:25:44.107Z”)中出错,我想更新相同的记录。更新时是否需要更新_at?请告诉JensSegers\Mongodb\Eloquent::fromDateTime(),我应该在哪里添加此内容?谢谢您的帮助。但是你能帮我弄清楚确切的日期吗。我的约会日期保存为1970-01-15请不要介意我惹你生气了。在模型中为duedates创建的变量。我不想要任何额外的字段来保存日期。我正在“创建日期”和“更新日期”字段中保存日期。github链接对我没有帮助。是否需要为已创建的_at和已更新的_at创建变体?@Gireesh不要紧!)好。。。正如我之前所说,保存模型时会自动设置属性created_at和updated_at,所以您应该不会有任何问题。它们会自动保存,但日期错误。如何更正?Jenssers\Mongodb\Elount::fromDateTime(),我应该在哪里添加此内容?谢谢您的帮助。但是你能帮我弄清楚确切的日期吗。我的约会日期保存为1970-01-15请不要介意我惹你生气了。在模型中为duedates创建的变量。我不想要任何额外的字段来保存日期。我正在“创建日期”和“更新日期”字段中保存日期。github链接对我没有帮助。是否需要为已创建的_at和已更新的_at创建变体?@Gireesh不要紧!)好。。。正如我之前所说,保存模型时会自动设置属性created_at和updated_at,所以您应该不会有任何问题。它们会自动保存,但日期错误。如何纠正这一点?