d3.time.scale()不是IE 10和Firefox上的工作日期输入

时间:2013-07-24 04:18:53

标签: firefox d3.js internet-explorer-10

我正在尝试使用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而不是颜色代码。为什么呢?

1 个答案:

答案 0 :(得分:3)

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

color拼写正确且8前面的0在IE10中有效。阅读new Date(string) documentation,预计会看到two digit month。在chrome:

>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)