php时区MongoDB$gt/$lt故障
我对时区和mongodate感到困惑,我知道mongo使用UTC。我需要php的utc+1结果: php中的date\u default\u timezone\u get()表示“Europe/Berlin”,这似乎是正确的 mongoDate条目为“ISODate”(“2014-01-06T10:03:47.182Z”)。utc+1的正确值为11:03而非10:03。因此,我对每日分组的$gt/$lt有困难 [编辑]php时区MongoDB$gt/$lt故障,php,mongodb,datetime,Php,Mongodb,Datetime,我对时区和mongodate感到困惑,我知道mongo使用UTC。我需要php的utc+1结果: php中的date\u default\u timezone\u get()表示“Europe/Berlin”,这似乎是正确的 mongoDate条目为“ISODate”(“2014-01-06T10:03:47.182Z”)。utc+1的正确值为11:03而非10:03。因此,我对每日分组的$gt/$lt有困难 [编辑] 我的确切问题是,一个用户注册的时间是0:08,但在mongoDB ISODa
我的确切问题是,一个用户注册的时间是0:08,但在mongoDB ISODate中是23:08(另一天…),因此我有问题将24小时精确分组 $dateStart=新蒙哥达(标准时间(“2014-01-01 00:00:00”)
$DATEND=新蒙哥达特(标准时间(“2014-12-31 23:59:59”)
数组(
数组('$match'=>array('regdate'=>array('$gt'=>$dateStart,$lt'=>$dateEnd)),
数组('$project'=>array('day'=>array('$dayOfMonth'=>'$regdate')),
数组('$group'=>array(''U id'=>array('day'=>'$day'),'count'=>array('$sum'=>1)),
数组('$sort'=>数组(''u id.day'=>-1)),
); 这显示了1个结果,但正确的是2,用户注册的是0:08而不是23:08 我希望你明白我的意思。:)
感谢并向您致意,MongoDB还不了解时区,因此它只实现了一个UTC 但这并不是一件坏事,实际上时区应该在应用程序中实现,而不是在数据库中实现 为此,您可以使用:默认情况下使用UTC 但是,您也可以使用
date('c',time())代码>要将时区应用于日期,我听说这是可行的,但我自己还没有测试过。我更喜欢让我的应用程序以标准化数据库的方式处理时区