javascript d3.js日期字符串解析问题

时间:2013-03-05 16:49:50

标签: javascript parsing date d3.js

假设这是我数据对象中的字符串

{ date: "2013-03-04 12:00:00+0000" }

var parseDate = d3.time.format("%Y-%m-%d_%H:%M:%S+%Z");

data.forEach(function(d) {
            d.date = parseDate(d.date);
        });

但在我的forEach方法中,我的日期对象每次都返回null。我不明白为什么会失败。

同样

{ date: "2013-03-04 00:00:00+0000" }

d3.time.format("%Y-%m-%d 00:00:00+00").parse

工作正常。但是日期不太精确,因为它假设一切都发生在我的可视化中的午夜

为什么我的字符串日期解析器在我的第一个场景失败?我尝试在chrome中的console / inspect元素中单步执行日期解析器,但无济于事。

这里是d3.time.format文档https://github.com/mbostock/d3/wiki/Time-Formatting

1 个答案:

答案 0 :(得分:4)

从您链接到的文档页面,进一步向下:

  

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

     

%j - 一年中的一天。

     

%U - 一年中的周数。

     

%w - 工作日编号。

     

%W - 一年中的周数。

     

%Z - 时区偏移,例如" -0700"。

     

%% - 文字"%"字符。

不支持您尝试解析的时区偏移量。第二个是有效的,因为你并没有试图解析它。

如果您对GMT中的所有内容都很满意,只需在格式规范中将+%Z替换为+0000即可。否则,您必须找到另一种解析日期的方法。