如何在php mongo查询中将unix时间戳转换为mongodb日期

时间:2015-11-17 09:43:43

标签: php mongodb

等效的mongo php查询是什么。提交具有php unixtimestamp

的文档的$ time

db.collection.aggregate({$project : { year : {$year : ISODate("$time"*1000)} }})

2 个答案:

答案 0 :(得分:2)

采用这种方法,通过 $add 运算符(可能是对时间字段的另一个$multiply操作的结果,将纪元日期添加到时间戳中,以毫秒为单位) 1000秒后,结果将是自纪元以来日期毫秒的 $year 部分:

db.collection.aggregate([    
    {
        "$project": {
            "year": {
                "$year": {
                    "$add": [ new Date(0), { "$multiply": [ "$time", 1000 ] } ]
                }
            }
         } 
    }
]);

等效的PHP语法类似于:

$collection->aggregate([
    [
        "$project" => [
            "year" => [
                "$year" => [
                    "$add": [ new MongoDate(0), [ "$multiply": [ "$time", 1000 ] ] ]
                ]
            ]
        ]
    ]
]);

答案 1 :(得分:0)

到目前为止,你尝试了什么,你使用的是php Mongo库吗?

这是一个带时间戳的例子:

$collection = $mongoClient->your_collection->your_type;
$pipeline = [
    [
        '$project' => [
            'year' => [
                '$year' => new \MongoDate($timestamp)
            ],
        ],
    ],
];

$results = $collection->aggregate($pipeline);