由于我已经意识到我无法比较($ gt,$ gte,$ lt,$ lte等)字符串格式的日期,我正在尝试学习如何使用 UTCDateTime 。 而且我无法在MongoDB \ BSON \ UTCDateTime
的集合中找到日期我正在尝试使用此代码。
plt
我拥有的JSON就是这个。
require '../vendor/autoload.php';
$client = new MongoDB\client("mongodb://localhost:27017");
$database = $client->db;
$center = $database->collection;
$document = $center->find(array("date" => new MongoDB\BSON\UTCDateTime("2018-03-22T09:03:07.147Z")));
foreach ($document as $doc){
var_dump($doc);
}
我收到此错误
致命错误:未捕获 MongoDB \ Driver \ Exception \ InvalidArgumentException:解析时出错 “2018-03-22T09:03:07.147Z”为64位整数 MongoDB \ BSON \ UTCDateTime初始化
如何使用MongoDB \ BSON \ UTCDateTime在集合中查找日期?
据我所知,我也可以找到带时间戳的日期,但我正在寻找一个带 UTCDateTime 字段的搜索。
答案 0 :(得分:1)
根据UTCDateTime::__construct文档字符串作为参数应包含自Unix纪元以来的毫秒数(并且它仅用于与32位系统兼容)。要使代码生效,您需要传递\DateTimeInterface
的实例:
new MongoDB\BSON\UTCDateTime(new \DateTimeImmutable("2018-03-22T09:03:07.147Z"))