Javascript 如何使用datepicker过滤chart.js?

Javascript 如何使用datepicker过滤chart.js?,javascript,json,api,datepicker,chart.js,Javascript,Json,Api,Datepicker,Chart.js,我是编程新手。我有一张由chart.js制作的图表,其中包含来自API的数据。这是我的API URL: 我想从图表上的API绘图中获取水分数据。y轴表示水分数据,X轴表示API上的时间戳。我尝试使用datepicker来管理要在图表上显示的数据 到目前为止,这是我的代码: $(function() { $('input[name="datefilter"]').daterangepicker({ showDropdowns : true, autoUpdateInput: false,

我是编程新手。我有一张由chart.js制作的图表,其中包含来自API的数据。这是我的API URL:

我想从图表上的API绘图中获取水分数据。y轴表示水分数据,X轴表示API上的时间戳。我尝试使用datepicker来管理要在图表上显示的数据

到目前为止,这是我的代码:

$(function() {

$('input[name="datefilter"]').daterangepicker({
    showDropdowns : true,
autoUpdateInput: false,
locale: {
    cancelLabel: 'Clear'
}
});

$('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) {
$(this).val(picker.startDate.format('DD/MM/YYYY') + ' - ' + picker.endDate.format('DD/MM/YYYY'));
var fromDate = picker.startDate.format('DD/MM/YYYY');
var toDate = picker.endDate.format('DD/MM/YYY');
if (fromDate != '' && toDate != '') {
      console.log(fromDate, toDate);
      var endpoint = 'https://gmlews.com/api/data/?node_id=1';

 $.ajax({
 method: "GET",
 url: endpoint,
 data: {
 fromDate: fromDate,
 toDate: toDate
 },
 success: function(data){
 console.log(data); //get all data
 //get data by fields
 var hum = [], time = [];
 for (var i=0; i<data.length; i++){
  hum.push(data[i].moisture);
  time.push(data[i].timestamp);
 }
 console.log(hum);
 console.log(time);
//plot the chart

var ctx = document.getElementById("moistureChart").getContext('2d');
var moistureChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: time,
        datasets: [{
            label: 'kelembaban',
            data: hum,
            backgroundColor: [
                '#ff000000'
            ],
            borderColor: [
            '#331698'
            ],
            borderCapStyle: 'round',
            borderWidth: 1
        }]
    },
    options: {
        reponsive: true,
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:false,
                    stepSize:10
                },
                  scaleLabel: {
                  display:     true,
                  labelString: 'kelembaban'
              }
            }],
            xAxes: [{

                    display: true,
                    type: "time",
                    time: {
                          minUnit: "hour",
                          unit: "hour",
                          unitStepSize: 6,
                          min: moment(fromDate).toDate(),//Date object type
                          max: moment(toDate).toDate()//Date object type
                    },
                  scaleLabel: {
                  display:     true,
                  labelString: 'Time'
              }
            }]
        }
    }
});
},
error: function(error_data){
console.log(error_data)
} 

});
} //if function
}); //tombol apply


$('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});

});
$(函数(){
$('input[name=“datefilter”]”)。daterangepicker({
决战:没错,
自动更新输入:false,
区域设置:{
取消标签:“清除”
}
});
$('input[name=“datefilter”]')。on('apply.daterangepicker',函数(ev,picker){
$(this.val(picker.startDate.format('DD/MM/yyyyy')+'-'+picker.endDate.format('DD/MM/yyyyy'));
var fromDate=picker.startDate.format('DD/MM/YYYY');
var toDate=picker.endDate.format('DD/MM/yyyy');
如果(从日期!=''&&toDate!=''){
console.log(fromDate,toDate);
var端点https://gmlews.com/api/data/?node_id=1';
$.ajax({
方法:“获取”,
url:endpoint,
数据:{
fromDate:fromDate,
托德:托德
},
成功:功能(数据){
console.log(数据);//获取所有数据
//按字段获取数据
var hum=[],time=[];

对于(var i=0;i首先,您试图通过发送fromDate和toDate参数从API中过滤数据。 我访问了,但没有找到有关可以使用的参数的文档

如果我尝试使用&fromDate=2020-05-29&toDate=2020-05-29获取数据,我将收到与调用没有参数的端点相同的数据。 在邮局也一样

你不应该发送时间戳而不是日期格式吗


您的格式化日期是YYYY-MM-DD格式吗?

哦!问题解决了!我应该将日期格式更改为YYYY-MM-DD,谢谢!