无法解析D3线图的日期

时间:2016-10-19 12:06:28

标签: javascript json d3.js

我想创建一个如下图所示的折线图, http://jsfiddle.net/wRDXt/2/

此处日期用作new Date(2013, 17, 1)

我的json内容如下,

[{
    "_id": "bb68d8a2-8778-4c85-8616-ed1e96a61ea6",
    "FLAG": "public",
    "STATUS": "active",
    "DESCRIPTION": "df",
    "DATE_TIME": "04-10-2016 16:39:39",
    "TOKEN": "bge2jb",
    "LAST_UPDATED": "Tue Oct 04 16:39:39 IST 2016"
},
{
    "_id": "556ae8ad-7291-4303-a9e4-618a82694600",
    "FLAG": "public",
    "STATUS": "active",
    "DESCRIPTION": "d",
    "DATE_TIME": "04-10-2016 16:52:20",
    "TOKEN": "16l4jal",
    "LAST_UPDATED": "Tue Oct 04 16:52:20 IST 2016"
},
{
    "_id": "98db36ba-392d-4df2-ac6c-820eaf582a11",
    "FLAG": "public",
    "STATUS": "active",
    "DESCRIPTION": "uyk",
    "DATE_TIME": "07-10-2016 12:13:10",
    "TOKEN": "dfl5ja",
    "LAST_UPDATED": "Fri Oct 07 12:13:10 IST 2016"
}]

来自api通话的我的日期格式类似于07-10-2016 12:13:10Fri Oct 07 12:13:10 IST 2016

如果我通过此日期,我在控制台中收到以下错误,

Uncaught TypeError: minDate.getDate is not a function

如何将日期传递给此并获取图表。

我的小提琴是http://jsfiddle.net/wRDXt/190/

1 个答案:

答案 0 :(得分:0)

date中的dataset不是日期对象,而是字符串。因此它没有getDate() - 函数,你得到的错误。

要解决此问题,请在声明数据集后立即循环遍历数据集中的所有条目,并通过解析date - 字符串重新定义date

dataset.forEach(function(d) {
    d.date = d3.time.format("%d-%m-%Y %H:%M:%S").parse(d.date);
});

请参阅小提琴:http://jsfiddle.net/wRDXt/204/

Reference for d3.time.format