如何获得正确的NVD3 xAxis日期

时间:2018-06-28 00:41:51

标签: d3.js nvd3.js

我希望在图表上看到“ 2013、12、16”。但是,我看到的是1970-1-16。

哪里出问题了? enter image description here

1387212420 <-> 2013、12、16、8、47

>>> timestamp3=1387212420
>>> datetime.datetime.fromtimestamp(timestamp3)
datetime.datetime(2013, 12, 16, 8, 47)


var data = [{values: [
          {"date": 1387212420, "open": 163.86, "high": 164.39, "low": 163.08, "close": 163.95, "volume": 108092500, "adjusted": 163.95},
          {"date": 1387212430, "open": 167.11, "high": 167.61, "low": 165.18, "close": 167.44, "volume": 135592200, "adjusted": 167.44},
]}];

 var chart = nv.models.candlestickBarChart()
  .x(function(d) { 
      return d['date'] })
  .y(function(d) {
      return d['close'] })
  .duration(250)
  .margin({left: 75, bottom: 50});



 chart.xAxis 
      .axisLabel("Dates")
      .tickFormat(function(d) {

          return d3.time.format('%m-%d-%Y')(new Date(d))
      });

1 个答案:

答案 0 :(得分:0)

您的时间戳与Javascript的Date构造器不兼容。尝试将其格式化为ISO 8601。

new Date(1387212420);
// Sat Jan 17 1970 11:20:12 GMT+1000 (Australian Eastern Standard Time)