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

スペルがcolor正しく、IE10 では 8 の前の 0 が機能します。new Date(string) ドキュメントを読むと、2 桁の月が想定されているようです。クロムで:

>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 に答える