使用PHPLIB

时间:2017-01-07 21:51:49

标签: php mongodb phplib

使用Mongo和PHP如何存储日期时间类型,然后按日期检索?

这是我插入的内容,但它将日期存储为字符串:

$collection->insertOne(['date_created' => '2017-01-02 17:20:15']);

我应该如何将日期发送给Mongo存储为日期时间类型,以便我可以做正确的查找?

1 个答案:

答案 0 :(得分:1)

将此类的实例放入数组:http://php.net/manual/en/class.mongodb-bson-utcdatetime.php

您需要在PHP数组中使用BSON对象:http://php.net/manual/en/book.bson.php

那些在传递给Mongo之前被正确序列化。

$test = array(  
    "_id" => 123, 
    "name" => "This is an example", 
    "date_created" => new MongoDB\BSON\UTCDateTime(time() * 1000)
);

$collection->insert($test);

time()乘以1000,因为构造函数需要自unix纪元以来经过的毫秒数,而time()返回自unix纪元以来经过的秒数。请参阅:http://php.net/manual/en/mongodb-bson-utcdatetime.construct.php

更新: 要以ISO格式检索日期/时间,只需将UTCDateTime对象拳头转换为DateTime:

$date_created = $test["date_created"];
$iso_date = $date_created->toDateTime()->format("Y-m-d H:i:s");