d3.js - 基于年和周的时间戳

时间:2013-05-07 15:46:39

标签: d3.js

我有一个包含数据年和周的专栏。我想基于此创建一个日期轴。

当我尝试格式化日期时,它无法正常工作

我试过了:

var parseDate = d3.time.format("%Y-%W").parse;

d3.csv("temperatures_groups_2.csv", function(error, data) {
    data.forEach(function(d,i) {
        d.timestamp = parseDate(d.timestamp);
        alert(d.timestamp);
        d.temperature = +d.temperature;
    }
});

警报执行时我得到null。

如果我用d3.time.format(“%Y-%m”)。parse替换它,它可以正常工作。这需要一个月而不是一周的时间。

csv包含这样的数据

时间戳,温度 2013-01,19.5 2014-02,21.5 2015-03,20.5 2016-04,20.5 2017-05,21.25

2 个答案:

答案 0 :(得分:1)

documentation说:

  

解析时尚不支持以下指令:

     

%U - 一年中的周数。

     

%W - 一年中的周数。

因此您无法使用D3来解析这些日期。您必须自己解析日期或使用其他库,例如moment.js

答案 1 :(得分:1)

version 3.2 {{}}}以及documentation更新后,此方法有效。

  • %U - 一年中的周数(星期日作为一周的第一天)作为十进制数[00,53]。
  • %W - 一年中的周数(星期一作为一周的第一天)作为十进制数[00,53]。

但是,问题中的格式不起作用,因为解析器需要指定特定日期。例如。由“%a”。如果在没有日期说明符的情况下假设星期天会很好,但那是另一个PR。