2

我正在尝试使用 d3.js 构建气泡图。我希望根据日期填充我的气泡颜色。我使用以下函数根据给定的日期生成颜色:

color = d3.time.scale().domain([new Date('2013-07-23'), new Date('2013-06-01')]).range(['#98E698', '#1E7B1E']);

在创建图表时,我称之为

.style("fill", function(d) {return colour(new Date("2013-07-8")); }); 

上面的代码仅适用于 Chrome。在 IE 10 和 Firefox 中,该color函数返回 NaN 而不是颜色代码。为什么?

4

1 回答 1

3
return color(new Date("2013-07-08")) 

拼写正确且color8 前面的 0 在 IE10 中有效。阅读new Date(string) 文档,看起来预计会有两位数的月份。在铬:

>new Date("2013-07-8") 
Mon Jul 08 2013 00:00:00 GMT-0700 (Pacific Daylight Time)

在 IE10 中:

>new Date("2013-07-8") 
Invalid Date 
>new Date("2013-07-08") 
Sun Jul 7 17:00:00 PDT 2013 

要解决此问题 - 通过在必要时添加零或使用 [d3.time.format] 将字符串更改为日期3来清理您的日期:

>var format = d3.time.format("%Y-%m-%d"); 
>format.parse("2013-07-8") 
Mon Jul 8 00:00:00 PDT 2013 

(这在 IE10 中有效)

于 2013-07-24T05:03:40.220 回答