1

我在我的应用程序中使用 Angularjs-nvd3-directives 图表。来自 mongodb 的数据格式如下:

[["2012-11-02T20:01:00.000Z",11],["2012-11-02T20:01:00.000Z",12],["2012-11-03T20:02:00.000Z",13 ],["2012-11-01T20:03:00.000Z",11],["2012-11-02T20:04:00.000Z",12],["2012-11-03T20:05:00.000Z", 13]]

我看到的所有示例都使用 Unix 时间戳,例如:

[ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847]]

使用 Unix 时间戳时适用于 X 轴日期的函数是:

$scope.xAxisTickFormatFunction = function() {
     return function(d) {
         return d3.time.format('%x')(new Date(d));
             };
         };

我应该写什么函数才能使用iso日期。我想在 X 轴上显示每分钟的值

4

1 回答 1

0

您应该将 Date 对象而不是 ISO 日期返回到图表(因为这是它所期望的)。在将数据输入图表之前,您应该对其进行处理

item.values.forEach(function (value) { //iterate over your values
  //this will transform ISO in date
  var b = value.date.split(/\D+/);
  var theDate = new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6]));
  responseObj.values.push({ //create a new array and push the new date
     x: theDate,
     y: parseInt(value.number)
  })
});
于 2019-06-12T18:22:47.867 回答