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

Posted

技术标签:

【中文标题】从 PHP 获取 Mongodb 中两个日期之间的订单详细信息【英文标题】:Fetch Order details between two dates in Mongodb from PHP 【发布时间】:2017-02-26 03:45:16 【问题描述】:

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

我从 Ajax 发送两个带有 javascript 日期的日期。

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);
        
    );

控制器:

if (isset($_GET['period'])) 

        $collection = $this->selectCollection(); // public function for setting the collection.         
        $start = $_GET['start_date'];
        $end = $_GET['end_date'];
        print_r($_GET['start_date']); // Outputs : 1476489600000
        print_r($_GET['end_date']); // Outputs : 1476662400000

        $result = $collection->find(array("OrderedOn" => array('$gt' => $start, '$lt' => $end)));
        print_r($result);

输出:

MongoCursor 对象 ( )

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

我不知道我错过了什么。如果您向我解释如何使用 php 获得结果,将会有很大帮助。

提前致谢。

【问题讨论】:

【参考方案1】:

试试这个:

$dateRange = $collection->find(array("timeStamp" => array('$gt' => $start, '$lt' => end)));
where $start is the start date & $end is the end date

【讨论】:

试过了。没有得到任何结果。我必须以哪种格式给出开始日期和结束日期?【参考方案2】:

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

更新时间:ISODate("2020-06-02T07:09:57.099+0000")

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

$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);

【讨论】:

以上是关于从 PHP 获取 Mongodb 中两个日期之间的订单详细信息的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 SQL 在 PHP 中获取两个日期之间的日期

PHP 如何获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期

PHP&获取两个时间日期之间得所有日期

PHP 获取两个日期之间的天数

在提供的多个日期范围之间获取 mongo 结果

使用php获取两个日期之间的总时间差[重复]