将日期格式化为 DC.js 中的财政年度

Formatting dates as financial year in DC.js

希望是一个非常简单的问题。我正在使用 DC.js 和 Crossfilter 显示一些数据,并且需要根据 4 月 1 日至 3 月 31 日的财政年度范围绘制年度总计,即 2015 年总计将涵盖 2015 年 4 月 1 日至 2016 年 3 月 31 日的日期范围。

虽然这是基于涵盖 1 月 1 日至 12 月 31 日的每年,但我已经创建了一个年份维度,如下所示。通过搜索 D3/DC/Crossfilter 文档,我找不到任何明显的东西。

正在导入的 csv 文件中的日期值采用 YYYYMMDD 格式。

var yearFormat = d3.time.format("%Y");

var yearDim = cf.dimension(function (d) {
    return yearFormat(d.myDateField);
}); 

在这种情况下,您只在日期的年份部分制作维度。您需要将 yearFormat 函数扩展为 return 正确的财政年度编号。

var yearFormat = function(date){
    if (date.getMonth < 3){
        return d3.time.format("%Y") - 1;
    } else {
        return d3.time.format("%Y");
    }
}