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