首页 > 解决方案 > jQuery DatePicker 在使用 mongodb 数据库的 php 中不起作用?

问题描述

我正在尝试使用 jQuery 日历过滤我的 MongoDB 数据,但它给出了一个错误 Undefined variable: startUndefined variable: end我无法弄清楚如何定义我的查询值并放入 MongoDB 查询以根据所选日期进行过滤。

代码 - MongoDB 查询

    $collection= $client->db_name->collection;
//default date selected
$currentdate = date("Y-m-d");

$filter = [array('date' => array('$gt' => start, '$lte' => end)),'date' => $currentdate]; 
$options = [];
$cursor= $collection->find($filter, $options)->toArray(); 

这是我的jQuery 日历代码

 $(function () {
        var start = moment();
        var end = moment();
        function cb(start, end) {
            $('#reportrange span').html(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD'));
            $('#hidreportrange').val(start.format('YYYY-MM-DD'));

            $("#spncurrentDate").html(DataBaseManager.DateTimeFormat(start.format('YYYY-MM-DD')));
        }
        $('#reportrange').daterangepicker({
            "singleDatePicker": true,
            startDate: start,
            endDate: end,
            ranges: {
                'Today': [moment(), moment()],
                'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')]
            }, 

            locale: {
                format: 'YYYY-MM-DD'
            }
        }, cb);

        cb(start, end);
    });

标签: phpjquerymongodb

解决方案


尝试在您的日期选择器上定义您的开始和结束变量,如下所示:

daterangepicker.daterangepicker("setRange", {
        start: moment("{{ startDate }}").toDate(),
        end: moment("{{ endDate }}").toDate()
    });

在我的情况下,我使用“startDate”和“endDate”作为从控制器发送的变量,但你可以使用你需要的任何东西。

编辑:忘了提到我的 daterangepicker 引用了我的 html id:

let daterangepicker = $("#daterangepicker");

推荐阅读