在mongodb中插入日期

Mar*_*uis 13 php mongodb

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

$today = new MongoDate(strtotime(date('Y-m-d 00:00:00')));
Run Code Online (Sandbox Code Playgroud)

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

例如,$today这应该是2013-05-28 00:00:00数据库中的一次2013-05-27 22:00:00.

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

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

小智 16

这适用于mongodb的新php版本:

new MongoDB\BSON\UTCDateTime((new DateTime($today))->getTimestamp()*1000)
Run Code Online (Sandbox Code Playgroud)


Mar*_*uis 15

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

这很有效.