当前位置:  开发笔记 > 编程语言 > 正文

正确的人力车日期格式

如何解决《正确的人力车日期格式》经验,为你挑选了1个好方法。

我正在使用人力车来建立一个能够在不同时间显示速度的折线图.

我的数据如下:

[{"x":1484124298856,"y":10},{"x":1484124300949,"y":10},{"x":1484124303142,"y":6},{"x":1484124305543,"y":7},{"x":1484124308544,"y":11},{"x":1484124310415,"y":8},{"x":1484124312038,"y":6},{"x":1484124313609,"y":10},{"x":1484124315152,"y":9},{"x":1484124316804,"y":4},{"x":1484124318638,"y":4},{"x":1484124320577,"y":8},{"x":1484124323127,"y":11},{"x":1484124325787,"y":3},{"x":1484124332703,"y":7},{"x":1484124340367,"y":2},{"x":1484124343787,"y":6},{"x":1484124348003,"y":9},{"x":1484124358932,"y":1},{"x":1484124363545,"y":9},{"x":1484124365670,"y":4},{"x":1484124367744,"y":6},{"x":1484124370212,"y":8},{"x":1484124372633,"y":2},{"x":1484124374960,"y":10},{"x":1484124377234,"y":9},{"x":1484124379623,"y":5},{"x":1484124382105,"y":4},{"x":1484124384763,"y":7},{"x":1484124387649,"y":5},{"x":1484124389965,"y":4},{"x":1484124391586,"y":3},{"x":1484124393010,"y":8},{"x":1484124394309,"y":10},{"x":1484124395588,"y":9},{"x":1484124396844,"y":10},{"x":1484124398047,"y":2},{"x":1484124399222,"y":1},{"x":1484124400324,"y":10},{"x":1484124401497,"y":4},{"x":1484124402787,"y":6},{"x":1484124405196,"y":2},{"x":1484124407560,"y":11},{"x":1484124409613,"y":2},{"x":1484124411312,"y":3},{"x":1484124412982,"y":3},{"x":1484124414386,"y":8},{"x":1484124415735,"y":6},{"x":1484124417047,"y":4},{"x":1484124418433,"y":8},{"x":1484124420174,"y":4},{"x":1484124423064,"y":5},{"x":1484124425978,"y":1},{"x":1484124428110,"y":9},{"x":1484124429807,"y":5},{"x":1484124431495,"y":9},{"x":1484124433077,"y":2},{"x":1484124434563,"y":1},{"x":1484124435975,"y":6},{"x":1484124437624,"y":6},{"x":1484124440760,"y":4},{"x":1484124444016,"y":6},{"x":1484124446655,"y":10},{"x":1484124448596,"y":2},{"x":1484124450839,"y":7},{"x":1484124452820,"y":6},{"x":1484124454660,"y":6},{"x":1484124456322,"y":10},{"x":1484124457993,"y":11},{"x":1484124459839,"y":5},{"x":1484124462118,"y":9},{"x":1484124464724,"y":6},{"x":1484124467396,"y":7},{"x":1484124470081,"y":3},{"x":1484124475097,"y":10},{"x":1484124484548,"y":2},{"x":1484124498625,"y":10},{"x":1484124526543,"y":2},{"x":1484124531178,"y":6},{"x":1484124536233,"y":11},{"x":1484124571541,"y":1},{"x":1484124595464,"y":7}]

其中X是时间(以秒为单位),Y是速度(以MPH为单位).

我的X轴和Y轴如下:

var x_ticks = new Rickshaw.Graph.Axis.Time({
  graph: graph,
  orientation: 'bottom',
  timeFixture: new Rickshaw.Fixtures.Time.Local()
  element: document.getElementById('x_axis')
});

var y_ticks = new Rickshaw.Graph.Axis.Y({
  graph: graph,
  orientation: 'left',
  tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
  element: document.getElementById('y_axis')
});

主图:

var graph = new Rickshaw.Graph({
  element: document.getElementById("speedGraph"),
  renderer: 'line',
  width: $('#speedGraph').width(),
  height: $('#speedGraph').height(),
  series: [
    {
      data: data,
      color: "#c05020"
    }
  ]
});
graph.render();

但我看到X轴上的日期不正确.例如,以上数据全部在2016年1月11日,但在不同时间.但是我在图表上看到的标签如下:

图片

根据文档,人力车希望日期在Unix时间戳中,所以应该理解数据.

1.为什么标签显示错误的日期?

2.我如何在轴上显示标签?例如:9:00,10:00,11:00等

这不仅仅是标签上的格式问题.人力车正在阅读错误的时间戳!



1> Thirueswaran..:

1. X (13位)不是UNIX时间戳 (10位).根据您的数据,X是从零日开始的总毫秒数,时间戳是从零开始的总秒数.
因此必须将其转换为有效的时间戳.

data.forEach(function (element) { element.x = Math.floor(element.x / 1000); });

2.您可以使用预定义配置或编写自定义.如果未指定timeUnit,框架将检测并设置合适的单元.

/* Using a predefined time unit formatting for x-axis ... */
var xAxisUnit = new Rickshaw.Fixtures.Time().unit('minute');

/* Custom time unit formatting for x-axis ... */
var xAxisUnit = {
  name: 'custom',
  seconds: 30,
  formatter: function (d) {
    return d.getUTCMinutes() + 'm :' + d.getUTCSeconds() + 's';
  }
}

new Rickshaw.Graph.Axis.Time({
  graph: graph,
  timeFixture: new Rickshaw.Fixtures.Time.Local(),
  timeUnit: xAxisUnit
});

我编辑了人力车的例子以符合你的要求:

  var data = [{ "x": 1484124298856, "y": 10 }, { "x": 1484124300949, "y": 10 }, { "x": 1484124303142, "y": 6 }, { "x": 1484124305543, "y": 7 }, { "x": 1484124308544, "y": 11 }, { "x": 1484124310415, "y": 8 }, { "x": 1484124312038, "y": 6 }, { "x": 1484124313609, "y": 10 }, { "x": 1484124315152, "y": 9 }, { "x": 1484124316804, "y": 4 }, { "x": 1484124318638, "y": 4 }, { "x": 1484124320577, "y": 8 }, { "x": 1484124323127, "y": 11 }, { "x": 1484124325787, "y": 3 }, { "x": 1484124332703, "y": 7 }, { "x": 1484124340367, "y": 2 }, { "x": 1484124343787, "y": 6 }, { "x": 1484124348003, "y": 9 }, { "x": 1484124358932, "y": 1 }, { "x": 1484124363545, "y": 9 }, { "x": 1484124365670, "y": 4 }, { "x": 1484124367744, "y": 6 }, { "x": 1484124370212, "y": 8 }, { "x": 1484124372633, "y": 2 }, { "x": 1484124374960, "y": 10 }, { "x": 1484124377234, "y": 9 }, { "x": 1484124379623, "y": 5 }, { "x": 1484124382105, "y": 4 }, { "x": 1484124384763, "y": 7 }, { "x": 1484124387649, "y": 5 }, { "x": 1484124389965, "y": 4 }, { "x": 1484124391586, "y": 3 }, { "x": 1484124393010, "y": 8 }, { "x": 1484124394309, "y": 10 }, { "x": 1484124395588, "y": 9 }, { "x": 1484124396844, "y": 10 }, { "x": 1484124398047, "y": 2 }, { "x": 1484124399222, "y": 1 }, { "x": 1484124400324, "y": 10 }, { "x": 1484124401497, "y": 4 }, { "x": 1484124402787, "y": 6 }, { "x": 1484124405196, "y": 2 }, { "x": 1484124407560, "y": 11 }, { "x": 1484124409613, "y": 2 }, { "x": 1484124411312, "y": 3 }, { "x": 1484124412982, "y": 3 }, { "x": 1484124414386, "y": 8 }, { "x": 1484124415735, "y": 6 }, { "x": 1484124417047, "y": 4 }, { "x": 1484124418433, "y": 8 }, { "x": 1484124420174, "y": 4 }, { "x": 1484124423064, "y": 5 }, { "x": 1484124425978, "y": 1 }, { "x": 1484124428110, "y": 9 }, { "x": 1484124429807, "y": 5 }, { "x": 1484124431495, "y": 9 }, { "x": 1484124433077, "y": 2 }, { "x": 1484124434563, "y": 1 }, { "x": 1484124435975, "y": 6 }, { "x": 1484124437624, "y": 6 }, { "x": 1484124440760, "y": 4 }, { "x": 1484124444016, "y": 6 }, { "x": 1484124446655, "y": 10 }, { "x": 1484124448596, "y": 2 }, { "x": 1484124450839, "y": 7 }, { "x": 1484124452820, "y": 6 }, { "x": 1484124454660, "y": 6 }, { "x": 1484124456322, "y": 10 }, { "x": 1484124457993, "y": 11 }, { "x": 1484124459839, "y": 5 }, { "x": 1484124462118, "y": 9 }, { "x": 1484124464724, "y": 6 }, { "x": 1484124467396, "y": 7 }, { "x": 1484124470081, "y": 3 }, { "x": 1484124475097, "y": 10 }, { "x": 1484124484548, "y": 2 }, { "x": 1484124498625, "y": 10 }, { "x": 1484124526543, "y": 2 }, { "x": 1484124531178, "y": 6 }, { "x": 1484124536233, "y": 11 }, { "x": 1484124571541, "y": 1 }, { "x": 1484124595464, "y": 7 }];

  /* converting to valid UNIX timestamp ...*/
  data.forEach(function (element) { element.x = Math.floor(element.x / 1000); })
  /* sorting in ASC to get MIN and MAX for Y-axis ... */
  data.sort(function (a, b) { return a.y - b.y; });
  /* creating a scale for Y-Axis with MIN and MAX of Y-Axis values ..*/
  var scale = d3.scale.linear().domain([data[0].y, data[data.length - 1].y]).nice();
 
  /* sorting data by X values in asending order.... */
  data.sort(function (a, b) { return a.x - b.x; });

  var graph = new Rickshaw.Graph({
    element: document.getElementById("chart"),
    renderer: 'line',
    series: [{
      color: 'steelblue',
      data: data,
      name: 'Series A',
      scale: scale
    }]
  });

  /* Using a predefined time unit formatting for x-axis ... */
  //var xAxisUnit = new Rickshaw.Fixtures.Time().unit('minute');

  /* Custom time unit formatting for x-axis ... */
  var xAxisUnit = {
    name: 'custom',
    seconds: 30,
    formatter: function (d) {
      /* formatting via minutes: seconds. NOTE UTC is being used, and those functions are from the default JS Date class .... */
      return d.getUTCMinutes() + 'm :' + d.getUTCSeconds() + 's';
    }
  }

  new Rickshaw.Graph.Axis.Time({
    graph: graph,
    timeFixture: new Rickshaw.Fixtures.Time.Local(),
    timeUnit: xAxisUnit
  });

  new Rickshaw.Graph.Axis.Y.Scaled({
    element: document.getElementById('axis0'),
    graph: graph,
    scale: scale,
    orientation: 'left',
    tickFormat: Rickshaw.Fixtures.Number.formatKMBT
  });

  new Rickshaw.Graph.HoverDetail({
    graph: graph
  });

  graph.render();
#axis0 {
    position: absolute;
    height: 800px;
    width: 40px;
  }
  #axis1 {
    position: absolute;
    left: 1050px;
    height: 800px;
    width: 40px;
  }
  #chart {
    left: 50px;
    width: 1000px;
    position: absolute;
  }







推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有