如何精确过滤日期?

时间:2015-11-13 09:17:01

标签: dc.js

我正在使用lineChart来显示创建日期(我的数据中的一个字段),它工作正常,我可以选择,但我需要一个更精确的过滤器:仅适用于今天,本周,上周创建的项目,此月,上个月

是否已经有一个如何完成的例子?我正在努力应用如何应用日期范围过滤器

2 个答案:

答案 0 :(得分:3)

由于这个问题时不时出现,如果有一个不错的例子会很好,我会在一段时间后回到NorthSide的问题并修复小提琴。

dc.js - add drop down to select date range

我们将定义第二个时间维度,以便图表受其影响。

在此示例中,我们将天数设置为选项值,然后使用它来计算日期:

<select id="myDropDown">
  <option value="Infinity">All</option>
  <option value='30'>30 days</option>
  <option value='7'>7 days</option>
  <option value="2">Top 2 day</option>
  <option value="5">Top 5 day</option>
</select>

d3.select('#myDropDown').on('change', function(){ 
    var nd = new Date(now);
    nd.setDate(nd.getDate() - +this.value);
    filterDimension.filterRange([nd, now]);
    dc.redrawAll();    
});

http://jsfiddle.net/gordonwoodhull/400wd2nd/16/

有更智能的方法来计算一个月等等,但希望这足以让你开始。

答案 1 :(得分:1)

我添加了一项功能,可以选择当天,当前周或 当月:

<select id="date_select">
  <option value="Infinity">All</option>
  <option value="today">Today</option>
  <option value='1'>last 24 hours</option>
  <option value="week">This week</option>
  <option value="month">This month</option>
  <option value='30'>last 30 days</option>
  <option value='90'>last 90 days</option>
</select>

和html是:

$url = 'https://fcm.googleapis.com/fcm/send';
//$field is the parameter you will be sending to FCM server in order to let FCM know which device, and the message you need to send to. You will get a better understading after study the doc.
$fields = array(
             'priority' => "high",
             'registration_ids' => $tokens,
             'data' => $data
            );
        $headers = array(
            'Authorization:key = 'your authorization key',
            'Content-Type: application/json'
            );
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_POST, true);
       curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);  
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
       curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
       $result = curl_exec($ch);           
       if ($result === FALSE) {
           die('Curl failed: ' . curl_error($ch));
       }
       curl_close($ch);