我试图通过引用来绘制D3时间序列: http://mcaule.github.io/d3-timeseries/
以此格式显示日期:'新日期(' 2013-01-01')
现在,我有以下数组:
var data =[{
"time": "2017-06-23T23:37:20-07:00",
"value": 25.189767114257663
},
{
"time": "2017-06-23T23:37:30-07:00",
"value": 24.637318860009692
},
{
"time": "2017-06-23T23:37:40-07:00",
"value": 24.896462306379043
},
{
"time": "2017-06-23T23:37:50-07:00",
"value": 24.348000192323468
}]
我需要将此数组作为d3 timeseries函数的输入。但我无法绘制任何内容,因为上面的时间不是Date对象。如何将该时间字符串追加或转换为日期对象。因为我绝对需要有新的Date事件,否则该函数根本不会执行。
我尝试使用以下方法将时间转换为日期对象:
data.map(function(ele) {
ele.time = new Date(ele.time);
});
所以,这个东西一直附加着Zone。当我试图将这个数组作为d3函数的输入时,它不起作用。
答案 0 :(得分:1)
您可以通过迭代数据并指定一个名为date的新字段,将时间戳映射到日期对象。
data.forEach(function(elem, index, arr) {
arr[index]['date'] = new Date(
arr[index]['timestamp'].split('T')[0]);
});
非常基本的字符串拆分,可能有更优雅的解决方案,但这是一个开始。