2016-10-04 187 views
0

我正在尝试创建一个x轴代表时间的折线图。我重写ChartJS'displayFormats以确保在每个标签上显示完整的时间戳,但也使其符合我期望的格式。ChartJS在时间轴上显示标签时显示日期但不是时间

这里是我的代码:

var chart = new Chart($('#myChart'), { 
 
    type: 'line', 
 
    data: { 
 
    labels: ['2016-09-05T09:29:06', '2016-10-04T09:29:06'], 
 
    datasets: [{ 
 
     label: 'foo', 
 
     data: [1, 4] 
 
    }] 
 
    }, 
 
    options: { 
 
     scales: { 
 
     xAxes: [{ 
 
      type: 'time', 
 
      time: { 
 
      displayFormats: { 
 
       millisecond: 'DD/MM/YYYY HH:mm:ss', 
 
       second: 'DD/MM/YYYY HH:mm:ss', 
 
       minute: 'DD/MM/YYYY HH:mm:ss', 
 
       hour: 'DD/MM/YYYY HH:mm:ss', 
 
       day: 'DD/MM/YYYY HH:mm:ss', 
 
       week: 'DD/MM/YYYY HH:mm:ss', 
 
       month: 'DD/MM/YYYY HH:mm:ss', 
 
       quarter: 'DD/MM/YYYY HH:mm:ss', 
 
       year: 'DD/MM/YYYY HH:mm:ss' 
 
      }, 
 
      tooltipFormat: 'DD/MM/YYYY HH:mm:ss' 
 
      } 
 
     }] 
 
     } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.bundle.js"></script> 
 
<canvas id="myChart" width="400" height="400"</canvas>

注意的是,在片段中的错误似乎是由SO被引入并无关手头的问题。

与上面的图表进行交互时,您会注意到工具提示显示格式正确的时间戳。所以,我相信我建议的格式化程序是正确的,ChartJS中提供了这些信息。

问题:

x轴仅显示标签的日期。标签的时间部分被删除并表示为零。为什么?我如何显示全职?

回答

0

我是个白痴。

当将x轴表示为时标时,标签从试图变为1:1对应于数据点,以对其日期/时间进行大致概括。 ChartJS四舍五入到最近的一天,因此在00:00:00时间。