0

我有这段代码可以绘制一个 d3js 多图表对象,值 time:Years 值以这种格式给出 Year=2011 ... 使用这种时间格式,代码工作正常,但是一旦我想以这种格式更改数据时间 Year= (YMD H:M:S)

var data = [{"Year":"2011-10-01 20:46:04","Happy":"63.4","Sad":"42.7","Angry":"12.2","Surprised":"44.2"},
{"Year":"2012-10-01 17:02:04","Happy":"75.4","Sad":"32.7","Angry":"78.2","Surprised":"82.2"},
{"Year":"2013-10-01 19:55:44","Happy":"73.4","Sad":"20.7","Angry":"92.2","Surprised":"75.4"}];

我解析了数据年份:

 var parseDate=d3.time.format("%Y-%m-%d %H:%M:%S").parse; //line 13
 d.Year=parseDate(d.Year);  //and then line 53

但它不起作用,我怎样才能以这种格式读取数据年份:(YMD H:M:S)

4

1 回答 1

0

您的示例中的问题是您将对象的所有属性都转换为数字。如果日期只是年份,则此方法有效,但如果它是需要解析的字符串,则无效。在您的情况下,您无论如何都不需要进行此转换,因为您可以将数字作为数字而不是直接提供字符串。也就是说,你不需要

for(var prop in d) {
    if(d.hasOwnProperty(prop)) {
        d[prop] = parseFloat(d[prop]);
    }
}

使用此处删除的转换代码工作 jsfiddle 。

于 2013-10-16T10:11:37.940 回答