从PHP获取Mongodb中两个日期之间的订单详细信息

时间:2016-10-17 08:24:50

标签: php mongodb mongodb-php

首先,我可以找到一些与此主题相关的问题。但我无法通过。这更像是我的代码所要求的解决方案。

我将使用Javascript日期从Ajax发送两个日期。

try
        {
            System.IO.DirectoryInfo directory = new DirectoryInfo(@"Your local Image directory inside bin/debug");

            FileInfo result = null;
            var list = directory.GetFiles(); // Stackoverflow Exception occurs here
            if (list.Count() > 0)
            {
                result = list.OrderByDescending(f => f.LastWriteTime).First();
            }
            return result;
        }
        catch (Exception ex)
        {

            throw ex;
        }

控制器:

var sd = new Date("2016-10-15T00:00:00.000Z");
var ed = new Date("2016-10-17T00:00:00.000Z");
$.ajax({
          type: "GET",
          url: "dashboard/load_revenue_chart",
          data: {type:"revenue",period:"no of days",start_date: sd.getTime(),end_date: ed.getTime()},
          dataType: 'json',
          success: function(data){
            line_chart(data);
        }
    });

输出:

  

MongoCursor对象   (   )

也尝试过ISOString。无法获得输出。但是当我尝试使用Mongo Shell时,我能够得到结果。

我不知道我错过了什么。如果你向我解释如何用PHP获得结果,那将是一个很大的帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

试试这个:

pic2.jpg

答案 1 :(得分:0)

使用gine mongo函数使用php在mongo DB数据库中保存日期时。 新建\ MongoDB \ BSON \ UTCDateTime(),然后将日期格式保存在数据库中,如下所示:

updateTime:ISODate(“ 2020-06-02T07:09:57.099 + 0000”)

当您要获取两个日期之间的所有记录时。例如当前日期和60天。
使用php追溯日期,然后像这样:

$milliseconds = round(microtime(true) * 1000);

$dt1 = date("Y-m-d", strtotime("-60 day"));
$dt2 = date("Y-m-d", strtotime("-1 day"));

$where = [ "updateTime" => array('$gte' => new MongoDB\BSON\UTCDateTime(strtotime("$dt1")* 1000), '$lte' => new MongoDB\BSON\UTCDateTime(strtotime("$dt2")* 1000))];

$fetchAllUser = new MongoDB\Driver\Query($where);
$fetchAllUser =  $connection->executeQuery($db.".collname", $fetchAllUser);