如何按当前日期和昨天的日期在 crossfilter 中进行过滤?
How to filter in crossfilter by current date and yesterday's date?
我想在交叉过滤器中进行查询以过滤今天日期的所有数据。
示例:我有这个查询:
var countPerDim2 = Dim2.filterExact("1.1.2018").group().reduceSum();
因此 crossfilter 将从 1.1.2018 开始过滤数据。
但我希望 crossfilter 自动获取当前日期。
我的理由是想画两个图表比较一下。
喜欢:
图表 1 按日期 1.1.2018 和图表 2 按日期 31.12.17
我怎样才能得到昨天的过滤器?是否有针对当天的 datenow()
和针对昨天日期的 datenow(-1)
之类的函数?
谢谢,新年快乐!
今天和昨天
为了回答您的直接问题,JavaScript 的 new Date()
将 return 当前时间和日期作为 JavaScript Date
对象。然后你只需要将日期对象转换为字符串以匹配你的日期格式。
您可以使用 d3.time.format 来生成这些字符串。看起来你想要像
这样的东西
d3.time.format('%-d.%-m.%Y')
(或者也许 m
和 d
颠倒了——从你的例子中不清楚是月还是日在前)
昨天有点像
var date = new Date();
date.setDate(date.getDate()-1);
有关详细信息,请参阅 JavaScript Date documentation。
比较两天
不过,我想你会 运行 遇到一个更基本的问题,那就是 crossfilter 没有多个过滤器的概念,所以很难将一个日期与另一个日期进行并排比较-边图。
在我的脑海中,我能想到的最好的事情是 "freeze" 使用假群组的群组:
function freeze_group(group) {
var _all = group.all().slice();
return {
all: function() {
return _all;
}
};
}
您将应用一个日期过滤器,然后调用
chart.group(freeze_group(group));
您希望在图表上显示该日期。现在过滤器更改时它不会更改,您可以将其他日期过滤器应用于其他图表。
我想在交叉过滤器中进行查询以过滤今天日期的所有数据。
示例:我有这个查询:
var countPerDim2 = Dim2.filterExact("1.1.2018").group().reduceSum();
因此 crossfilter 将从 1.1.2018 开始过滤数据。
但我希望 crossfilter 自动获取当前日期。 我的理由是想画两个图表比较一下。 喜欢:
图表 1 按日期 1.1.2018 和图表 2 按日期 31.12.17
我怎样才能得到昨天的过滤器?是否有针对当天的 datenow()
和针对昨天日期的 datenow(-1)
之类的函数?
谢谢,新年快乐!
今天和昨天
为了回答您的直接问题,JavaScript 的 new Date()
将 return 当前时间和日期作为 JavaScript Date
对象。然后你只需要将日期对象转换为字符串以匹配你的日期格式。
您可以使用 d3.time.format 来生成这些字符串。看起来你想要像
这样的东西d3.time.format('%-d.%-m.%Y')
(或者也许 m
和 d
颠倒了——从你的例子中不清楚是月还是日在前)
昨天有点像
var date = new Date();
date.setDate(date.getDate()-1);
有关详细信息,请参阅 JavaScript Date documentation。
比较两天
不过,我想你会 运行 遇到一个更基本的问题,那就是 crossfilter 没有多个过滤器的概念,所以很难将一个日期与另一个日期进行并排比较-边图。
在我的脑海中,我能想到的最好的事情是 "freeze" 使用假群组的群组:
function freeze_group(group) {
var _all = group.all().slice();
return {
all: function() {
return _all;
}
};
}
您将应用一个日期过滤器,然后调用
chart.group(freeze_group(group));
您希望在图表上显示该日期。现在过滤器更改时它不会更改,您可以将其他日期过滤器应用于其他图表。