我正在使用d3.js创建图形,我使用JSON文件作为输入。我需要解析x轴的日期和时间格式。这是我试过的代码。
d3.json('data/fake_users11.json', function(data) {
var parseDate = d3.time.format("%Y-%m-%d %H:%M:%S").parse;
var old = JSON.stringify(data).replace(/\//g, "-");
data = JSON.parse(old); //convert back to array
data.forEach(function(d) {
d.date = parseDate(d.date);
});
json文件是这样的
[
{
"date": "02\/18\/2016 18:02:38",
"value": 10
},
{
"date": "02\/18\/2016 18:02:45",
"value": 20
},
{
"date": "02\/18\/2016 18:02:50",
"value": 30
}
]
所需格式为02-18-2016 18:02:50。但我只是得到一个错误。我知道我很接近。有人能指出这里的错误吗? 感谢。
答案 0 :(得分:0)
我认为你使用了错误的格式。
这一年是你日期的结尾,但是你正试图在开头解析它:
var parseDateWrong = d3.time.format("%Y-%m-%d %H:%M:%S").parse;
应该是:
var parseDateOk = d3.time.format("%m-%d-%Y %H:%M:%S").parse;
请参阅jfiddler了解会发生什么
我认为您现在可以直接使用您收到的json,而无需用 - 替换 - :
var parseDate = d3.time.format("%m/%d/%Y %H:%M:%S").parse;
data.forEach(function(d) {
d.date = parseDate(d.date);
});