2016-05-30 258 views
1
var tasks; 
d3.json("http://localhost:8080/result", function(error, data) { 
tasks = data 
data.forEach(function(d) { 
d.startDate = new Date(d.maxTime["$date"]); 
d.endDate = new Date(d.minTime["$date"]); 
}); 

var taskNames = ["Bob", "Sam"]; 

var gantt = d3.gantt().taskTypes(taskNames); 
gantt(data); 
}); 

我使用从here 帮助这是从http://localhost:8080/result返回我json对象的数组类似:d3.js甘特图

[ 
    {"minTime": {"$date": 1459555200000}, 
    "maxTime": {"$date": 1459555860000}, 
    "Time": 660.0, "Name": "Sam"}, 
    {"minTime": {"$date": 1459558800000}, 
    "maxTime": {"$date": 1459563265000}, 
    "Time": 4465.0, "Name": "Bob"}, 
    {"minTime": {"$date": 1459562400000}, 
    "maxTime": {"$date": 1459563842000}, 
    "Time": 1442.0, "Name": "Sam"}, 
    ... 
] 

我得到一个错误

负值无效。 (“-30.00296 864734321”)

和397其他人。

这些错误是什么意思?

回答

3

尝试

d.startDate = new Date(d.maxTime.$date); 
d.endDate = new Date(d.minTime.$date); 

d.startDate = new Date(d.maxTime["$date"]); 
d.endDate = new Date(d.minTime["$date"]); 
+0

我设法在底部得到的时间,但现在我得到其他几个错误。我刚才提到的例子中的那个人对所有变量进行了硬编码。 http://static.mentful.com/gantt-chart-d3v2.js – glitterati

+0

'var timeDomainStart = d3.time.day.offset(new Date(), - 3); var timeDomainEnd = d3.time.hour.offset(新日期(),+ 3);'在你正在使用的代码中,改变它来修复你的数据。 – paradite