2013-03-05 53 views
1

认为这是我的字符串在我的数据,我forEach方法对象的JavaScript 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); 
     }); 

的是,我的约会对象返回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

+0

您可能不需要[+%Z]中的[+]。尝试[“%Y-%m-%d_%H:%M:%S%Z”] – Andrew 2013-03-05 16:55:14

+0

@Andrew这也没有起作用。d3.time.format(“%Y-%m-%d_%H: %M:%S%Z“)。parse' – CQM 2013-03-05 17:22:07

回答

4

从文档页面,你链接到,进一步下跌:

以下指令尚不支持解析:

%j - 一年中的某一天。

%U - 一年的周数。

%w - 工作日号码。

%W - 一年的周数。

%Z - 时区偏移量,例如“-0700”。

%% - 文字“%”字符。

您试图解析的时区偏移量不受支持。第二个工程,因为你不想解析。

如果您在格林威治标准时间内处理所有事情都很好,只需在您的格式规格中用+0000替换+%Z即可。否则,你将不得不寻找另一种解析日期的方式。

+0

this does not work'd3.time.format(”%Y-%m-%d_%H:%M:%S + 0000“)。parse' – CQM 2013-03-05 17:21:46

+0

this工作d3.time.format(“%Y-%m-%d%H:%M:%S + 0000”)解析谢谢,花了很多试验和错误。文件表明_需要一个空间,但这是误导 – CQM 2013-03-05 17:25:36