Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将时间字符串转换为日期对象javascript_Javascript_Arrays_Datetime_D3.js - Fatal编程技术网

将时间字符串转换为日期对象javascript

将时间字符串转换为日期对象javascript,javascript,arrays,datetime,d3.js,Javascript,Arrays,Datetime,D3.js,我试图通过引用以下内容来绘制D3时间序列: 以这种格式记录日期:“新日期('2013-01-01')) 现在,我有以下数组: var data =[{ "time": "2017-06-23T23:37:20-07:00", "value": 25.189767114257663 }, { "time": "2017-06-23

我试图通过引用以下内容来绘制D3时间序列:

以这种格式记录日期:“新日期('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函数的输入。但我无法绘制任何东西,因为时间不是日期对象。如何将该时间字符串追加或转换为日期对象。因为我绝对需要有一个新的日期,否则这个函数就不能执行了

我尝试使用以下方法将时间转换为日期对象:

data.map(function(ele) {
ele.time = new Date(ele.time);
});

所以,这件事一直都附加了区域。当我尝试将此数组作为d3函数的输入时,它不起作用。

您可以通过迭代数据并分配一个名为date的新字段,将时间戳映射到日期对象

data.forEach(function(elem, index, arr) {
  arr[index]['date'] = new Date(
    arr[index]['timestamp'].split('T')[0]);
});

非常基本的字符串拆分,可能还有更优雅的解决方案,但这里是一个开始。

您可以预处理
数据
,将所有时间字符串转换为日期对象,并使用结果新数据对象作为d3的输入。不,您已经将其转换为日期字符串-
data.forEach(item=>item.time=new date(item.time))
将为您提供时间属性中的日期对象。我已经尝试过执行上述操作。请检查编辑。是的。。。映射返回一个新数组,您将忽略该数组。。。因此,您也可以使用
forEach
而不是
map
它不起作用
是堆栈溢出中经常使用的一个短语,它是多余的(否则您为什么会问问题)并且本身毫无意义-您在(开发人员工具)控制台中是否出现错误?你观察到了什么?它与您期望的有什么不同?您能告诉我我所做的有什么错吗,因为我也在将它转换为日期对象?您介意分享您的代码吗?我刚刚编辑了我的答案,所以现在可能会更有帮助。你正在做的事情将得到与我正在做的相同的结果。如链接中所示,我需要以下形式的内容:[{date:new date('2013-01-01'),n:120,n3:124,ci_up:130,ci_down:118}…]这是有问题的