【发布时间】:2014-01-23 17:51:59
【问题描述】:
我对时区和 mongodate 感到困惑,我知道 mongo 使用 UTC。我需要 utc+1 的 php 结果:
php 中的 date_default_timezone_get() 表示“欧洲/柏林”,这似乎是正确的。
mongoDate 条目是 "ISODate("2014-01-06T10:03:47.182Z")",正确的 utc +1 是 11:03 而不是 10:03。所以我对按天分组的 $gt/$lt 有问题。
[编辑]
我的确切问题是,一个用户在 0:08 注册,但在 mongoDB ISODate 中是 23:08(又是一天..),所以我有问题要准确分组 24 小时。
$dateStart = new MongoDate(strtotime("2014-01-01 00:00:00"));
$dateEnd = new MongoDate(strtotime("2014-12-31 23:59:59"));
数组(
数组('$match' => 数组('regdate' => 数组('$gt' => $dateStart, '$lt' => $dateEnd))),
数组('$project' => 数组('day' => 数组('$dayOfMonth' => '$regdate'))),
array('$group' => array('_id' => array('day' => '$day'), 'count' => array('$sum' => 1))),
数组('$sort' => 数组('_id.day' => -1)),
);
这显示了 1 个结果,但正确的是 2,用户注册时间是 0:08 而不是 23:08。
我希望你明白我的意思。 :)
谢谢和最好的问候,
【问题讨论】: