在mongodb中插入日期

时间:2013-05-28 12:47:22

标签: php mongodb

我想在集合中插入日期。 我使用类MongoDate来创建日期对象:

$today = new MongoDate(strtotime(date('Y-m-d 00:00:00')));

问题是,一旦它在我的收藏中,日期是提前2小时。

例如,$today此处应为2013-05-28 00:00:00,但在数据库中一次为2013-05-27 22:00:00

我无法通过手动向时间戳添加2小时来解决此问题,因为我在查询中使用了日期。

运行Mongo的服务器的本地时间设置为我所在国家/地区的正确时间。

3 个答案:

答案 0 :(得分:14)

$dt = new DateTime(date('Y-m-d'), new DateTimeZone('UTC'));
$ts = $dt->getTimestamp();
$today = new MongoDate($ts);

这很有效。

答案 1 :(得分:2)

删除旧文档并插入

        $bill = array(  
                "_id" => 1, 
                "name" => "A", 
                "lastModified" => new MongoDate()
            );

        $collection->insert($bill);

答案 2 :(得分:0)

仅供参考:如果您需要为对象模型创建日期。

$date_created = new \MongoDB\BSON\UTCDateTime(time()*1000);